Bul*_*tor 1 ruby encoding utf-8
puts "C3A9".lines.to_a.pack('H*').encoding
Run Code Online (Sandbox Code Playgroud)
结果是
ASCII-8BIT
Run Code Online (Sandbox Code Playgroud)
但我更喜欢UTF-8中的这个文字.但
"C3A9".lines.to_a.pack('H*').encode("UTF-8")
Run Code Online (Sandbox Code Playgroud)
结果是
`encode': "\xC3" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
Run Code Online (Sandbox Code Playgroud)
为什么?如何将其转换为UTF-8?
你这是错误的方式.如果你有这样的URI编码数据:
%C5%BBaba
Run Code Online (Sandbox Code Playgroud)
那你应该URI.unescape用来解码它:
1.9.2-head :004 > URI.unescape('%C5%BBaba')
=> "?aba"
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,则强制编码为UTF-8:
1.9.2-head :004 > URI.unescape('%C5%BBaba').force_encoding('utf-8')
=> "?aba"
Run Code Online (Sandbox Code Playgroud)