在MAC中使用sed命令时遇到问题



我正在尝试执行以下操作:

LC_CTYPE=C sed 's/|/¦/g' t.txt > new_t.txt

代码正在工作,但当我打开新文件时,替换会添加一个额外的字符";A";。为什么?

当您键入时

LC_CTYPE=C sed 's/|/¦/g' t.txt > new_t.txt

您的shell可能被配置为接受命令本身为UTF-8,因此实际上您最终将单字节0x7C(U+007C(转换为两字节0xC2 0xA6,这是U+00A6的正确UTF-8编码。

然后做了什么还不清楚,但不知何故,您最终检查了UTF-8以外的其他编码的文件,UTF-8将这两个字节公开为您报告看到的字符串。

正确的解决方法是在正确配置的支持UTF-8的程序中检查文件。

相关内容

  • 没有找到相关文章

最新更新