Charset从XXX转换为utf-8,命令行

时间:2010-04-27 15:21:55

标签: command-line encoding scripting character-encoding

我有一堆用ISO-8851-2编码的文本文件(有一些抛光字符)。是否有一个linux / mac的命令行工具,我可以从shell脚本运行,将其转换为saner utf-8?

3 个答案:

答案 0 :(得分:27)

使用iconv,例如:

iconv -f LATIN1 -t UTF-8 input.txt > output.txt

更多信息:

  • 您可能需要指定UTF-8//TRANSLIT而不是普通UTF-8。引用联机帮助页:

      

    如果字符串 //TRANSLIT 附加到 to-encoding ,则转换后的字符会在需要和可能时进行音译。这意味着当一个字符不能在目标字符集中表示时,它可以通过一个或几个相似的字符来近似。目标字符集之外且无法音译的字符将在输出中替换为问号(?)。

  • 有关iconv接受的编码代码的完整列表,请执行iconv -l

  • 上面的示例使用了shell重定向。确保您使用在重定向上破坏编码的shell - 也就是说,不要使用PowerShell。

答案 1 :(得分:9)

recode latin2..utf8 myfile.txt

这将使用新版本覆盖myfile.txt。您也可以使用没有文件名的重新编码作为管道。

答案 2 :(得分:3)

GNU 'libiconv'应该能够胜任。