Trong một ứng dụng Rails 3.0 (Ruby 1.9.2) Tôi đang cố gắng để mã hóa một số dữ liệu sử dụng một cái gì đó như thế này:Làm thế nào để mã hóa dữ liệu trong chuỗi UTF-8 bằng cách sử dụng OpenSSL :: Cipher?
cipher = OpenSSL::Cipher.new 'aes-256-cbc'
cipher.encrypt
cipher.key = cipher.random_key
cipher.iv = cipher.random_iv
encrypted = cipher.update 'most secret data in the world'
encrypted << cipher.final
Điều đó sẽ đi vào một cơ sở dữ liệu UTF-8. Vấn đề của tôi là
> encrypted.encoding
=> #<Encoding:ASCII-8BIT>
> encrypted.encode 'utf-8'
Encoding::UndefinedConversionError: "\xF7" from ASCII-8BIT to UTF-8
Tôi có thể nhận được chuỗi mã hóa UTF-8 bằng cách nào?
Cảm ơn vì điều này !! – Brandon
'» được mã hóa = Base64.encode64 ('Tromsø'). Mã hóa ('utf-8') => "VHJvbXPDuA == \ n" »Base64.decode64 (mã hóa.encode ('ascii-8bit')) => "Troms \ xC3 \ xB8" ' – mhenrixon
Cảm ơn bạn, đã cứu ngày của tôi! – ti6on