我正在运行 ubuntu 16.04,当我下载电影字幕、解压 zip 文件后,尝试.srt
使用 gedit 打开该文件时,我看到的只是这种形式的乱码:
1 00:04:17,052 --> 00:04:18,963 ÊáëÞ ãç.
2 00:04:19,452 --> 00:04:20,851 ¹ôáí êÜðïôå.
我尝试使用 jedit 和 LibreOffice Writer 打开文件,但同样不起作用。在 gedit 上,我没有直接双击文件来打开它,而是尝试先打开 gedit,然后浏览到我的文件,将字符编码和文本语言也设置为希腊语,但这似乎没有帮助。
我还按照我在另一个问题类似的事情,但没有任何区别。
我真的不知道问题出在哪里,是在 gedit 还是在文件滚动器中。更奇怪的是,当我运行 14.04 时,我记得按照我在开始时描述的步骤操作,一切都运行正常。
我对 Linux 还比较陌生,只能使用终端执行基本操作。如果有人能帮助我,我将不胜感激。
答案1
我遇到了同样的问题,只是在其他人的帮助下解决了它。直接用 或其他编辑器打开它gedit
并
LibreOffice
尝试以另一种编码保存它没有帮助。原因是它们通常以 Windows-1253 集编码,而许多 Linux 程序会自动将此代码集检测为“西方”。
一个简单的方法就是告诉你使用的每个程序它不是一个“西方”代码集。对于编辑,您可以通过单独打开 gedit 来执行此操作,转到"Open file"
,选择您的文件,然后在窗口底部选择正确的"Character Encoding"
,此时应该显示“自动检测”,必须将其更改为希腊代码集才能获得可读的文本。然后,Gedit 会以正确的代码集打开文件。例如甚高频液晶,既然我们在讨论字幕,唯一要做的就是将默认字幕编码更改为“Windows-1253”,您可以在中找到它"Preferences"/"Subtitles"
。然后希腊字母就会正常显示,即使您无法在其他编辑器中正确读取.srt。
打开在 Windows 机器上编写的 txt 文件中可读的希腊字符的另一种最安全的方法是首先将它们转换为 UTF-8,这将为您提供永久的解决方案针对特定文件。可以通过控制台使用iconv
工具进行操作:
iconv -f Windows-1253 -t UTF-8 input.txt > output.txt
显然,您既可以从 .txt 文件所在的文件夹执行它,也可以从其他任何地方执行它,但在这种情况下,请提供 input.txt 和 output.txt 的完整路径。在极少数情况下,原始文件编码可能是 ISO-8859-7,这是另一种希腊编码,如果 Windows-1253 不起作用,您也可以尝试使用它,将其替换为“来自”编码,即
iconv -f ISO-8859-7 -t UTF-8 input.txt > output.txt
答案2
这里您需要的解决方案是gaupol
。gaupol
是一个字幕编辑程序,也用于纠正符号的错误显示。
首先,在终端中输入:
file -bi my_subtitle_track.srt
这样您就可以获取文件的编码(可能不是每次都按预期工作)。您将获得如下结果
text/plain; charset=iso-8859-1
然后,安装完成后gaupol
,启动它,并尝试使用上面得到的编码结果打开文件。如果您看到符号显示正确,则表示您使用正确的编码打开了它,现在您需要将其保存为通用编码以与其他程序兼容。选择File->Save As-> My_subs_track.srt
使用UTF-8
编码。
对我有用,希望有帮助:)