iconv 无法转换给定字符

iconv 无法转换给定字符

我只是想将 txt 文件转换为 UTF-8,因为 cat 可以正确显示它,但 vi 或 gedit 却不能:

$ cat test.txt 
>#
>‹
|
||
°
├──
└──
_
__
$ iconv -f WINDOWS-1253 -t UTF-8 test.txt 
>#
>β€Ή
|
||
Β°
β”iconv: illegal input sequence at position 18
$ 

: 如何将 txt 转换为 UTF-8? iconv 不起作用。

答案1

您的文件包含诸如和 之类的字符,这些字符不在Windows-1253,所以无论iconv失败与否,您都没有指定正确的输入编码,因此输出是错误的。

如果cat正确显示文件,则文件的编码与您的终端的编码相同。运行命令locale并查看该LC_CTYPE行以查看终端正在使用的编码。事实上,该文件很可能已经以 UTF-8 编码。

Vi 和 Gedit 似乎无法自动检测文件的编码。您是否将它们配置为采用特定的编码?如果是这样,请不要这样做。如果没有,请在 Gedit 中打开文件时选择“UTF-8”而不是“自动检测”。在 Vim 中,使用:set encoding=utf-8.

答案2

源字符看起来可能是 ATARI。尝试 -f ATARI 或 -f ATARIST

相关内容