如果您使用的是Mac OS X 10.6,并且熟悉字符编码和终端,请执行以下操作:
打开终端并输入以下命令:
回声sørensen>的test.txt iconv -f UTF8 -t ISO-8859-1 test.txt您将看到输出:“sørensen”。有人可以解释发生了什么吗?
答案 0 :(得分:0)
UTF-8是多字节编码。字符ø由两个字节编码:C3-B8。在终端的编码(ISO-8859-1)中,这些字节被解码为ø。然后将这些字节转换为ISO-8859-1的ø代码。有问题吗?
答案 1 :(得分:0)
我尝试从一个文件到另一个文件的“iconv”命令,用“od -txC”查看数据,结果如下:
Input: c3 83 c2 b8 [ 2 utf8-chars Capital A tilde; Cedilla ]
Command: iconv -f utf-8 -t ISO-8859-1 < in.txt > out.txt
Output: c3 b8 [ 2 ISO-8859-1 characters, Capital A tilde; Cedilla ]
所以,iconv转换是正确的。
但是,如果您将转换后的数据视为utf-8(终端显然正在进行),则C3-B8为“ø”(o-slash)。
如果您将终端(首选项//高级//字符编码)中的字符编码更改为“Western(ISO Latin 1)”,您会看到C3-B8为“¸”