【发布时间】:2011-02-12 22:17:21
【问题描述】:
我有一堆用 ISO-8851-2 编码的文本文件(有一些波兰字符)。是否有适用于 linux/mac 的命令行工具,我可以从 shell 脚本运行以将其转换为更健全的 utf-8?
【问题讨论】:
-
最有可能是 ISO-8859-2。 ISO 8851 谈到了黄油。
标签: command-line encoding scripting character-encoding
我有一堆用 ISO-8851-2 编码的文本文件(有一些波兰字符)。是否有适用于 linux/mac 的命令行工具,我可以从 shell 脚本运行以将其转换为更健全的 utf-8?
【问题讨论】:
标签: command-line encoding scripting character-encoding
使用iconv,例如这样:
iconv -f LATIN1 -t UTF-8 input.txt > output.txt
更多信息:
您可能想要指定UTF-8//TRANSLIT 而不是普通的UTF-8。引用手册页:
如果将字符串
//TRANSLIT附加到 to-encoding,则正在转换的字符会在需要和可能的情况下进行音译。这意味着当一个字符无法在目标字符集中表示时,可以通过一个或几个外观相似的字符来近似。超出目标字符集且无法音译的字符将在输出中替换为问号 (?)。
要获得iconv 接受的编码代码的完整列表,请执行iconv -l。
【讨论】:
recode latin2..utf8 myfile.txt
这将用新版本覆盖myfile.txt。您也可以使用不带文件名的重新编码作为管道。
【讨论】:
GNU 'libiconv' 应该能够完成这项工作。
【讨论】: