我经常遇到具有字符编码问题的文本文件(例如我的母语波斯语的字幕文件)。这些文件是在 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
Run Code Online (Sandbox Code Playgroud)
这些都没有用!
我正在使用 Ubuntu-14.04,我正在寻找一个简单的解决方案(GUI 或 CLI),它的工作原理与 Notepad++ 一样。
“简单”的一个重要方面是不需要用户确定源编码;相反,源编码应该由工具自动检测,并且只有目标编码应该由用户提供。但是,我也很高兴知道需要提供源编码的工作解决方案。
如果有人需要测试用例来检查不同的解决方案,可以通过此链接访问上述示例。
大家好,我正在运行 Ubuntu 12.04.1 LTS 32 位,我唯一的问题是我来自保加利亚,当带有保加利亚潜艇 VLC 播放器的下载电影没有正确显示它们时,我该如何解决?

我尝试使用 gsubedit(gnome 字幕)为视频添加字幕,但它显示字幕为乱码,而且我打开文件并看到那里乱码。
我也在 Windows 中使用了希伯来语字幕,如何让 Ubuntu 以希伯来语显示我的字幕?
感谢您的帮助!(:
我有很多来自 Windows 环境的纯文本文件。
他们中的许多人使用一个古怪的默认 Windows 代码页,它既不是 ASCII(7 位)也不是 UTF-8。
gvim打开这些文件没有问题,但gedit无法打开。
gvim报告编码为latin1。
我假设gvim正在对代码页做出“聪明”的假设。
(我相信这个代码页仍然有国际变体)。
一些问题由此产生:
(1). 有什么方法可以告诉gedit识别这个代码页吗?
**注意。[更新] 对于这一点 (1),请参阅下面的我的回答。
** 对于点 (2) 和 (3)。看到奥利的回答。
(2). 有没有办法扫描文件系统来识别这些问题文件?
(3). 是否有批量转换工具将这些文件转换为 UTF-8?
(.. 这个旧世界的文本混乱实际上是将我带到 Ubuntu 的最后一根稻草......默认情况下系统范围内的 UTF-8很棒)
[更新]
**注: **我现在考虑下面的更新是部分无关紧要,因为“问题”文件不是“问题”(见我下面的答案)。
我把它留在这里,因为它可能对某人有一些普遍的用处。
我已经制定了一个粗略和现成的方法来识别问题文件...
该file命令不合适,因为它将我的示例文件识别为 ASCII...但 ASCII 文件 100% 符合 UTF-8...
正如我在下面的评论中提到的,对UTF-8 代码点的第一个字节无效的测试是:
我的语言字幕有问题。它们被编码为西方(ISO-8859-15),因此某些字符无法正确显示。我厌倦了使用 gedit 和ctrl-手动替换h,然后保存为 UTF-8。如何自动化这个过程?