VIM - 用于转换字符编码的蝙蝠

时间:2014-09-09 07:29:51

标签: batch-file csv vim encoding character-encoding

我有一个从Google云端硬盘下载的.csv文件,其编码无法识别重音字符(西班牙语字符)。

使用适用于Windows的VIM编辑器,我可以通过打开文件(vim spanish.csv)然后在文件类型

内解决此问题
 :write ++enc=utf-16 spanish-2.csv

现在我需要创建一个.bat或.ps1来自动为我做这个。我怎么能这样做?

P.D。:我尝试过使用iconv而且我无法转换我从Google云端硬盘下载的文件,因为我不知道编码是什么。我试过了:

iconv -f ANSI:X3.4-1968 -t UTF-8 spanish.csv > spanish-2.csv
iconv -f ANSI:X3.4-1986 -t UTF-8 spanish.csv > spanish-2.csv
iconv -f ASCII -t UTF-8 spanish.csv > spanish-2.csv

还有许多其他编码,但它说文件无法转换。

1 个答案:

答案 0 :(得分:1)

找出编码

当您在Vim中打开spanish.csv源文件时

:setlocal fileencoding?

应告诉您检测到的编码。还有像enca这样的第三方工具可以执行此检测。然后,您可能只需要将编码名称转换为iconv所需的格式。

转换为Vim

您也可以直接使用Vim进行转换;可以通过-c {cmd}

在命令行中指定Ex命令
vim -c "write ++enc=utf-16 spanish-2.csv" -c "quit" spanish.csv

使用:argdo和文件名%:r-2.%:e,您甚至可以将多个源文件传递到单个Vim实例进行转换。