【发布时间】:2018-03-07 10:57:29
【问题描述】:
非常感谢在我之前的场景中帮助过我的每个人。我相信有人会像以前一样问过类似的问题。这是我的问题。
我的文件属于 Little-endian UTF-16 Unicode 英文文本,带有 CRLF 行终止符 编码,但我认为它不适用于我们的文件标准。通常我在这里看到的属于ASCII 英文文本。我如何将其转换为它。
我使用了iconv -f UTF-16LE -t UTF-8 myfile.dat -o myfile.dat_test,但它正在将整个文件转换为 UTF-8 Unicode (with BOM) 英文文本,带有 CRLF 行终止符,不太清楚发生了什么。
【问题讨论】:
-
除了您不想要 BOM 之外一切都好吗?
-
最好是ASCII英文文本
-
如果所有字符都在 ASCII 范围内 (
<= 127 or 0x7f),UTF8 将完全等同于 ASCII。如果您的 UTF-16 包含 UTF8 编码超过一个字节的字符,则需要另一个计划。无论如何,这可能很有用:zzz.buzz/2016/07/30/bom-in-iconv -
也许一个更好的问题是,如果你想要 ASCII,你为什么要告诉
iconv转换为 UTF-8? -
这可能是您输入文件的 BOM。如果是这样,请尝试将其删除。
标签: file unix awk encoding character-encoding