如何在 Vim 中修改已有文件的编码?

5

这里有一个关于http://subscene.com/subtitles/crank/farsi_persian/281992的字幕文件。如果你下载了它,你会看到一些代码,例如:

1
00:02:05,360 --> 00:02:07,430
åßÊæÑ¡ ãÇ åäæÒ ÏÇÑíã ãí ÑÎíã¿
ÎæÈå

2
00:02:07,600 --> 00:02:10,956
áíæÓ! ãÇ ÏÇÑíã í ÇÑ ãíäíã Èå ¿
æ Ïíå åí æÞÊ ãä Ñæ ÕÏÇ äãíÒäí

the thing i expect is:

1
00:02:05,360 --> 00:02:07,430
هكتور، ما هنوز داريم مي چرخيم؟
خوبه

2
00:02:07,600 --> 00:02:10,956
چليوس! ما داريم چي کار ميکنيم بچه ؟
و ديگه هيچ وقت من رو صدا نميزني

我是通过将文件扩展名从srt更改为txt,使用Chrome浏览器打开文件,将编码更改为阿拉伯语Windows并重新选择所有文本来保存文件内容而达到这个目的的。
我不知道如何使用vim或shell脚本做到这一点。我尝试了`:write ++enc=utf-8 russian.txt` 或 `set encoding` 或 `set fileencoding`,但都没有成功。
谢谢,Mona
1个回答

6
vim 中:
加载文件后,不要进行任何修改。然后你可以执行以下操作:
:e ++enc=cp1256

要保存为 utf-8 编码,只需

:w ++enc=utf-8

或者您可以在Shell中执行此操作:
iconv -cf WINDOWS-1256 -t utf-8 problem.srt -o correct.srt

它可以工作,但这只改变了文件的显示方式,我该如何使用它来保存文件? - Mona

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接