1

我想将十六进制字符串转换为 utf-8,例如,"\\XB6\\XAB..."转换为"中国". 我使用"\x68\x65\x6c\x6c\x6f".unpack("Z*")"hello"但它不起作用。

4

2 回答 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 回答