如何更改字幕文件的编码?

Leo*_*nos 15 text-editor unicode utf-8

我下载了一部电影的希腊语字幕,这就是我用 Gedit 打开它时看到的。

在此处输入图片说明

字幕在 VLC 上效果很好,一切都很完美。但是如果我想用一些希腊词来编辑这个副标题怎么办?我立即收到有关字符编码的错误。

在此处输入图片说明

我点击重试,然后 VLC 无法识别字幕...

car*_*dil 17

对于字幕编辑/翻译(即基于文本的字幕),我强烈建议使用Gaupol

sudo apt-get install gaupol
Run Code Online (Sandbox Code Playgroud)

此外gaupol,您还可以尝试Subtitle EditorGnome Subtitles

但是,从屏幕截图中可以明显看出您的.srt文件不是以 Unicode 编码的。

事实证明,iconv 确实将文件的编码更改为 UTF-8,但转换后的文件仍将具有您在 Gedit 中打开时看到的相同字符。

我找到的解决方案是这样的:

  1. 打开 Gaupol 并转到菜单File ? 打开或单击按钮打开
  2. 在打开的窗口下方有一个选择菜单,标题为Character encoding。单击其他...(最后一个选项)。

    Gaupol 的打开窗口中的字符编码选项

  3. 为您的文件选择合适的编码,例如希腊语 ISO-8859-7,然后单击按钮Accept

    显示字符编码对话框

  4. 现在打开您的.srt文件并确保正确呈现所有字符。否则,用另一种编码重复上述过程。您可以运行该命令file -bi yourfile.srt来确定文件的正确编码(尽管我已经阅读了结果不一定准确)。

  5. 以正确的字符编码打开字幕文件后,现在转到菜单File ? 另存为...并将字符编码选项(再次在窗口底部)更改为 UTF-8 并保存文件(可能使用新名称,以确保安全)。

添加代码页的相同过程也适用于 Gedit。但是我留下了 Gaupol 的说明,因为这个问题是关于字幕文件的。

祝你好运。


bil*_*ass 6

iconv -f ISO-8859-7 -t UTF-8  Input_file.srt   > Output_file.srt  
Run Code Online (Sandbox Code Playgroud)

从 Kate 编辑器打开它们你可以看到正确的文本,如果你仍然需要从 Gedit 打开它们,换句话说,永久更改编码运行上面的终端命令。


Sta*_*tan 5

我会推荐enca。与 gaupol 不同,您不仅可以处理字幕文件,还可以处理任何文本文件。

  1. 安装enca:

    sudo apt-get install enca
    
    Run Code Online (Sandbox Code Playgroud)
  2. 要弄清楚文件的编码,请查看 enca 是否可以猜测它:

    enca <file>
    
    Run Code Online (Sandbox Code Playgroud)

    或者,如果失败并且您知道文本文件的语言,则运行例如

    enca -L ru <file>
    
    Run Code Online (Sandbox Code Playgroud)

    看看它能给你带来什么。从 获取支持的语言列表man enca

  3. 我建议转换为 UTF-8,你可以通过运行来完成

    enconv -x utf8 <file>
    
    Run Code Online (Sandbox Code Playgroud)

    或者,再次,如果enca无法猜测语言

    enconv -L ru -x utf8 <file>
    
    Run Code Online (Sandbox Code Playgroud)

    这应该够了吧。