如何将hex转换为utf-8

时间:2012-09-15 17:30:24

标签: ruby utf-8 translate

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

2 个答案:

答案 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"