在字符集之间转换文本文件的最佳方法?
在字符集之间转换文本文件的最快,最简单的工具或方法是什么?
具体来说,我需要从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
正如Ben指出的,有一个使用iconv的在线转换器。
Cheekysoft建议的Gnu recode(手动)将在原地转换一个或多个文件 。 例:
$ recode UTF8..ISO-8859-15 in.txt
这个使用较短的别名:
$ recode utf8..l9 in.txt
Recode还支持可用于在不同行结束类型和编码之间进行转换的表面:
将换行符从LF(Unix)转换为CR-LF(DOS):
$ recode ../CR-LF in.txt
Base64编码文件:
$ recode ../Base64 in.txt
你也可以合并它们。
将带有Unix行尾的Base64编码的UTF8文件转换为带有Dos行尾的Base64编码的拉丁文件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”。
独立的实用程序方法
iconv -f UTF-8 -t ISO-8859-1 in.txt > out.txt
-f ENCODING the encoding of the input -t ENCODING the encoding of the output
尝试VIM
如果你有vim
你可以使用这个:
未针对每种编码进行测试。
关于这一点很酷的部分是你不必知道源代码
vim +"set nobomb | set fenc=utf8 | x" filename.txt
请注意,该命令直接修改文件
说明部分!
+
:vim在打开文件时直接输入命令。 Usualy用于在特定行打开文件: vim +14 file.txt
|
:多个命令的分隔符(如;
在bash中) set nobomb
:no utf-8 BOM set fenc=utf8
:将新的编码设置为utf-8文档链接 x
:保存并关闭文件 filename.txt
: filename.txt
路径 "
:由于管道,qotes在这里(否则bash将使用它们作为bash管道) 在Linux下,您可以使用非常强大的recode命令尝试在不同的字符集之间进行转换,以及任何行结束问题。 recode -l将向您显示工具可以在其间转换的所有格式和编码。 这可能是一个很长的名单。
链接地址: http://www.djcxy.com/p/25121.html上一篇: Best way to convert text files between character sets?
下一篇: How do I see what character set a MySQL database / table / column is?