我只是想将 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