标签: bash macos shell
我正在尝试执行以下操作:
LC_CTYPE=C sed 's/|/¦/g' t.txt > new_t.txt
代码正在运行,但是当我打开新文件时,替换添加了一个附加字符“A|”。这是为什么?
答案 0 :(得分:0)
输入时
您的外壳可能被配置为接受命令本身作为 UTF-8,因此实际上您最终转换了单字节 0x7C (U+007C ) 到两个字节 0xC2 0xA6,这是 U+00A6 的正确 UTF-8 编码。
您当时做了什么不清楚,但不知何故,您最终以某种不同于 UTF-8 的编码检查了文件,这将两个字节公开为您报告看到的字符串。
正确的解决方法是在支持 UTF-8 的正确配置程序中检查文件。