1

我的泰语字符串是:“หลับตาฝัน ถึงชื่อเธอ”

我需要像这样输出utf-8编码:“\u0e08\u0e2d\u0e21\u0e40\u0e27\u0e17\u0e22\u0e4c\u0e21\u0e2b\u0e32”

目前,我安装了“iconv”gem并正在使用

string = Iconv.conv('unicode', 'utf-8', string)

但它不起作用。

invalid encoding ("unicode", "utf-8") (Iconv::InvalidEncoding)

我需要使用 Iconv 还是编码?(我在 Ruby 2.3.1 上)

4

2 回答 2

0
"Développement".encode("iso-8859-1").force_encoding("utf-8")
#=> "Développement"

您必须强制编码。

于 2016-11-20T16:28:27.503 回答
0

你是最好的.encode,它在标准库中。Iconv 自 Ruby 1.9.3 起已被弃用

但是当我这样做时

"หลับตาฝัน ถึงชื่อเธอ".encode("utf-8")

我得到另一个结果作为你想要的结果。

编辑:未在 IRB 中测试,但在这样的脚本中

# coding: UTF-8
p "หลับตาฝัน ถึงชื่อเธอ".encode("utf-8") # "\u0E2B\u0E25\u0E31\u0E1A\u0E15\u0E32\u0E1D\u0E31\u0E19\u0E16\u0E36\u0E07\u0E0A\u0E37\u0E48\u0E2D\u0E40\u0E18\u0E2D"

你确定你想要的结果吗?

于 2016-11-20T14:40:11.800 回答