在字符集之间转换文本文件的最快,最简单的工具或方法是什么?
具体来说,我需要从UTF-8转换为ISO-8859-15,反之亦然。
一切顺利:以您喜欢的脚本语言,命令行工具或其他适用于OS,网站等的实用工具进行一线处理
迄今为止最好的解决方案:
在Linux / UNIX / OS X / cygwin上:
Troels Arvin建议的Gnu iconv最好用作过滤器。它似乎是普遍可用的。例:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Cheekysoft建议的Gnu recode(手册)将就地转换一个或几个文件。例:
$ recode UTF8..ISO-8859-15 in.txt
这使用较短的别名:
$ recode utf8..l9 in.txt
重新编码还支持可用于在不同的行尾类型和编码之间进行转换的表面:
将换行符从LF(Unix)转换为CR-LF(DOS):
$ recode ../CR-LF in.txt
Base64编码文件:
$ recode ../Base64 in.txt
您也可以将它们结合在一起。
将具有Unix行结尾的Base64编码的UTF8文件转换为具有Dos行结尾的Base64编码的Latin 1文件:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
在带有Powershell的 Windows (Jay Bazuzi)上:
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(尽管没有ISO-8859-15支持;它说支持的字符集是unicode,utf7,utf8,utf32,ascii,bigendianunicode,default和oem。)
编辑
您是说iso-8859-1支持吗?使用“字符串”可以做到这一点,反之亦然
gc -en string in.txt | Out-File -en utf8 out.txt
注意:可能的枚举值为“未知,字符串,Unicode,字节,BigEndianUnicode,UTF8,UTF7,Ascii”。
- CsCvt- Kalytta的字符集转换器是Windows另一个基于命令行的出色转换工具。
recode
如果您不传递任何文件名,它也可以充当过滤器,例如:recode utf8..l9 < in.txt > out.txt
enca
,则无需指定输入编码。通常只需指定语言即可:enca -L ru -x utf8 FILE.TXT
。
iconv -f UTF-32 -t UTF-8 input.csv > output.csv
仅节省了约70万行,仅节省了三分之一。使用就地版本iconv -f UTF-32 -t UTF-8 file.csv
成功转换了全部200万行。
gc -en Ascii readme.html | Out-File -en UTF8 readme.html
但是它将文件转换为utf-8,但是然后它是空的!Notepad ++说文件是Ansi格式,但据我了解它甚至不是有效的字符集,但仍在读取?uk.answers.yahoo.com/question/index?qid=20100927014115AAiRExF