在字符集之间转换文本文件的最佳方法?

时间:2020-03-05 18:54:01  来源:igfitidea点击:

在字符集之间转换文本文件的最快,最简单的工具或者方法是什么?

具体来说,我需要从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 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(Jay Bazuzi)的Windows上:

  • PS C:> gc -zh-cn utf8 in.txt | Out-File -en ascii out.txt`(不过不支持ISO-8859-15;它说支持的字符集是unicode,utf7,utf8,utf32,ascii,bigendianunicode,默认和oem。)

编辑

我们是说iso-8859-1支持吗?使用"字符串"可以做到这一点,例如反之亦然

gc -en string in.txt | Out-File -en utf8 out.txt

注意:可能的枚举值为"未知,字符串,Unicode,字节,BigEndianUnicode,UTF8,UTF7,Ascii"。

  • CsCvt-Kalytta的字符集转换器是另一个适用于Windows的基于命令行的出色转换工具。

解决方案

回答

iconv(1)

iconv -f FROM-ENCODING -t TO-ENCODING file.txt

此外,还有多种语言的基于iconv的工具。

回答

在Linux下,我们可以使用功能非常强大的recode命令尝试在不同的字符集以及任何行尾问题之间进行转换。 recode -l将向我们显示该工具可以转换的所有格式和编码。这可能是很长的清单。

回答

独立实用程序方法

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

回答

Yudit编辑器支持并在许多不同的文本编码之间进行转换,可在linux,windows,mac等上运行。

-亚当

回答

Get-Content -Encoding UTF8 FILE-UTF8.TXT | Out-File -Encoding UTF7 FILE-UTF7.TXT

最短的版本,如果我们可以假设输入的BOM是正确的:

gc FILE.TXT | Out-File -en utf7 file-utf7.txt

回答

PHP iconv()

iconv(" UTF-8"," ISO-8859-15",$ input);