iconv的问题

时间:2010-03-26 13:52:13

标签: character-encoding

如果您使用的是Mac OS X 10.6,并且熟悉字符编码和终端,请执行以下操作:

打开终端并输入以下命令:

回声sørensen>的test.txt iconv -f UTF8 -t ISO-8859-1 test.txt

您将看到输出:“sørensen”。有人可以解释发生了什么吗?

2 个答案:

答案 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为“¸”