我想将十六进制字符串转换为 utf-8,例如,"\\XB6\\XAB..."
转换为"中国"
. 我使用"\x68\x65\x6c\x6c\x6f".unpack("Z*")
→"hello"
但它不起作用。
问问题
2744 次
2 回答
2
如果您使用的是 Ruby 1.9,请使用String#force_encoding
:
"\xe4\xb8\xad\xe5\x9b\xbd".force_encoding("UTF-8")
于 2012-09-15T17:40:52.220 回答
1
确保你使用双引号来定义你的字符串,否则你不会得到你期望的结果。
使用双引号的示例:
"\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"
于 2014-10-21T19:31:22.530 回答