如何使用Ruby Base64解码utf8字符

xtupzzrd  于 2023-01-25  发布在  Ruby
关注(0)|答案(2)|浏览(190)

正如标题所描述的,我如何才能做到以下几点?

require 'base64'

text = 'éééé'
encode = Base64.encode64(text)
Base64.decode64(encode)

Result: éééé instead of \xC3\xA9\xC3\xA9
bxjv4tth

bxjv4tth1#

当你执行decode64时,你会得到一个BINARY(又名ASCII-8BIT)编码的字符串:

Base64.decode64(encode).encoding
# => #<Encoding:ASCII-8BIT>

诀窍是强制应用特定的编码:

Base64.decode64(encode).force_encoding('UTF-8')
# => "éééé"

这假定您的字符串是有效的UTF-8,但它可能不是,因此请谨慎使用。

cuxqih21

cuxqih212#

只需使用Base64的encodedecode方法:

require 'base64'
=> true
Base64.encode64('aksdfjd')
=> "YWtzZGZqZA==\n"

Base64.decode64 "YWtzZGZqZA==\n"
=> "aksdfjd"

相关问题