我有一个名为test.dat
的文件,它有一个Unicode字符,如下所示:
Mu?oz Rivera
35 Mu�oz Rivera Ave., Apt 1001
我使用以下命令删除了Unicode字符:
tr -Ac '[007-015][040-176]' '[000*]' < test.dat > sample.dat ; mv sample.dat test.dat
该命令运行良好,但问题是我的文件格式是UFT-8,但在执行该命令后,该格式被转换为ANSI-1252。
我应该在上面显示的命令中进行什么修改才能保留字符编码?
而且我可以像以前一样在命令行中看到输出文件中的数据。但如果我使用记事本++或Ultra EDIT打开处理过的文件(o/p文件),我可以看到不同的格式(ANSI而不是UFT-8)。
1条答案
按热度按时间jgwigjjp1#
什么是UTF-8?
UTF-8使用1到4个单字节(8位)值以Unicode编码所有有效的字符码点。
当我剥离十进制128下的不可打印字符时,是否将其换成UTF-8?
您的UTF-8文件使用超过128个十进制的代码来编码这些字符代码点:
此命令删除所有不可打印的内容,并替换为空字节。这实际上会破坏该文件或使其无效。它不再是符合UTF-8标准的文件。
运行脚本后的文件结果: