【发布时间】:2011-12-11 01:34:59
【问题描述】:
如何在 Awk 中正确读取 UTF8 以外编码的文件?
我有一个希伯来文/Windows-1255 编码的文件。 一个简单的 {print $0} awk 会打印出类似的东西。 如何让它正确读取?
【问题讨论】:
-
这很可能与您的终端和 awk 一样多。
如何在 Awk 中正确读取 UTF8 以外编码的文件?
我有一个希伯来文/Windows-1255 编码的文件。 一个简单的 {print $0} awk 会打印出类似的东西。 如何让它正确读取?
【问题讨论】:
awk 本身不支持处理不同的编码。它将遵循环境中指定的语言环境,但最好的办法是将输入转码为正确的编码,然后再将其交给 awk。
-f 是您要转换的格式,-t 是目标格式,-c 会跳过任何过早终止 iconv 操作的无效字符。当然 --help 会提供更多细节。
iconv -c -f cp1255 -t utf8 somefile | awk ...
【讨论】:
awk '{print $0 "äöü"}' 这样的 CLI)必须采用正确的编码,否则也可能会影响输入文件。