Command line 从XXX到utf-8的字符集转换,命令行

Command line 从XXX到utf-8的字符集转换,命令行,command-line,encoding,scripting,character-encoding,Command Line,Encoding,Scripting,Character Encoding,我有一堆用ISO-8851-2编码的文本文件(有一些波兰语字符)。是否有一个linux/mac的命令行工具,我可以从shell脚本运行,将其转换为一个更健全的utf-8?GNU应该能够完成这项工作 recode latin2..utf8 myfile.txt 这将用新版本覆盖myfile.txt。您也可以使用不带文件名的重新编码作为管道。使用,例如: iconv -f LATIN1 -t UTF-8 input.txt > output.txt 更多信息: 您可能希望指定UTF-8/

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

GNU应该能够完成这项工作

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

使用,例如:

iconv -f LATIN1 -t UTF-8 input.txt > output.txt
更多信息:

  • 您可能希望指定
    UTF-8//translatit
    ,而不是普通的
    UTF-8
    。要引用手册页:

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

  • 要查看
    iconv
    接受的编码代码的完整列表,请执行
    iconv-l

  • 上面的示例使用shell重定向。确保您使用的shell不会在重定向时损坏编码,也就是说,不要为此使用PowerShell

谢谢!我知道这比我想象的要容易!比公认的答案更有效,因为iconv不会替换相同的文件,即使使用-o或输出重定向也是如此。很可能是ISO-8859-2。ISO 8851谈到黄油。可能是