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

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

具体来说,我需要从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”。

  • CsCvt - Kalytta的字符集转换器是另一款基于命令行的Windows转换工具。

  • 独立的实用程序方法

    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.txtfilename.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?