我有一堆用ISO-8851-2编码的文本文件(有一些抛光字符)。是否有一个linux / mac的命令行工具,我可以从shell脚本运行,将其转换为saner utf-8?
答案 0 :(得分:27)
使用iconv
,例如:
iconv -f LATIN1 -t UTF-8 input.txt > output.txt
更多信息:
您可能需要指定UTF-8//TRANSLIT
而不是普通UTF-8
。引用联机帮助页:
如果字符串
//TRANSLIT
附加到 to-encoding ,则转换后的字符会在需要和可能时进行音译。这意味着当一个字符不能在目标字符集中表示时,它可以通过一个或几个相似的字符来近似。目标字符集之外且无法音译的字符将在输出中替换为问号(?)。
有关iconv
接受的编码代码的完整列表,请执行iconv -l
。
答案 1 :(得分:9)
recode latin2..utf8 myfile.txt
这将使用新版本覆盖myfile.txt
。您也可以使用没有文件名的重新编码作为管道。
答案 2 :(得分:3)
GNU 'libiconv'应该能够胜任。