如何使用Vim更改现有文件的编码

Mon*_*ona 5 vim shell encoding batch-file character-encoding

这是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
áíæÓ! ãÇ ÏÇÑíã í ÇÑ ãíäíã Èå ¿
æ Ïíå åí æÞÊ ãä Ñæ ÕÏÇ äãíÒäí
Run Code Online (Sandbox Code Playgroud)

我期望的是:

1
00:02:05,360 --> 00:02:07,430
?????? ?? ???? ????? ?? ??????
????

2
00:02:07,600 --> 00:02:10,956
?????! ?? ????? ?? ??? ?????? ??? ?
? ???? ??? ??? ?? ?? ??? ??????
Run Code Online (Sandbox Code Playgroud)

我通过将文件扩展名从srt更改为txt,使用chrome浏览器打开它,将编码转换为阿拉伯语窗口并通过选择所有文本重新保存文件内容来达到它.

我不知道如何使用vim或shell脚本执行此操作.我想:write ++enc=utf-8 russian.txt还是set encodingset fileencoding,但没有运气.

谢谢,莫娜

Ken*_*ent 6

vim中:

加载文件后,不要做任何修改.然后你可以这样做:

:e ++enc=cp1256
Run Code Online (Sandbox Code Playgroud)

只需要保存在utf-8中

:w ++enc=utf-8
Run Code Online (Sandbox Code Playgroud)

或者你可以在shell中做到:

iconv -cf WINDOWS-1256 -t utf-8 problem.srt -o correct.srt
Run Code Online (Sandbox Code Playgroud)