我想将十六进制的字符串翻译为utf-8,例如"\\XB6\\XAB..."
到"中国"
。我使用"\x68\x65\x6c\x6c\x6f".unpack("Z*")
→"hello"
但它不起作用。
答案 0 :(得分:2)
如果您使用的是Ruby 1.9,请使用String#force_encoding
:
"\xe4\xb8\xad\xe5\x9b\xbd".force_encoding("UTF-8")
答案 1 :(得分:0)
确保使用双引号来定义字符串,否则您将无法获得预期的结果。
使用双引号的示例:
"\xe4\xb8\xad\xe5\x9b\xbd".force_encoding("UTF-8") => "中国"
使用单引号的示例:
'\xe4\xb8\xad\xe5\x9b\xbd'.force_encoding("UTF-8") => "\\xe4\\xb8\\xad\\xe5\\x9b\\xbd"