我不确定如何告诉Iconv
将我的字符串转码为可读输出。
示例:我正在转换 "LATIN CAPITAL LETTER S WITH CARON" U+0160,呈现为Š
.
Iconv.conv('cp1252', 'UTF8', 'Š'
) 但是返回"\212"
我希望它返回等效的 cp1252 字符0x8A
,也呈现为Š
. 但是打印的结果仍然是"\212"
- 它是八进制表示(\212
对于0x8A
or是八进制138
)。
我还尝试了一些更奇特的编码指令,例如cp1252//IGNORE//TRANSLIT
,具有相同的输出。
我做错了什么,应该怎么做?
谢谢
编辑
Casper 说,控制台输出应该正确呈现字符,但事实并非如此。也许我只是不知道如何将其设置为接受 cp1252。
如果有人能告诉我该怎么做,我将不胜感激 - 我正在使用 Ubuntu 13.04 并且带有 irb 的常规 bash 和 RubyMine 的内置控制台都将输出显示为"\212"
的输出locale
适用en_US.UTF8
于所有值。
Iconv.conv('cp1252', 'UTF8', 'Š').inspect
印刷"\"\\212\""
Iconv.conv('cp1252', 'UTF8', 'Š').each_byte { |b| p b }
印刷品138
和"\212"