我经常遇到带有字符编码问题的文本文件(例如,使用我的母语波斯语的字幕文件)。这些文件是在Windows上创建的,并使用不合适的编码(似乎是ANSI)保存,看起来像乱码和不可读,如下所示:
在Windows中,可以使用Notepad ++轻松解决此问题,将编码转换为UTF-8,如下所示:
正确的可读结果是这样的:
我已经在GNU / Linux上搜索了很多类似的解决方案,但是不幸的是,建议的解决方案(例如,这个问题)不起作用。最重要的是,我见过人们的建议iconv
,recode
但是我对这些工具没有运气。我已经测试了许多命令,包括以下命令,但都失败了:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
这些都不起作用!
我正在使用Ubuntu-14.04,并且正在寻找一种与Notepad ++一样工作的简单解决方案(GUI或CLI)。
“简单”的一个重要方面是不需要用户确定源编码。而是源编码应由工具自动检测,而目标编码应仅由用户提供。但是,尽管如此,我也很高兴知道需要提供源编码的可行解决方案。
如果有人需要测试用例来检查不同的解决方案,则可以通过此链接访问上面的示例。
iso-639
但在iconv
或中似乎都没有recode
。至少,我在的输出中看不到它iconv -l
。
vim
但没有成功。
vim '+set fileencoding=utf-8' '+wq' file.txt
。