文件有很多特殊字符。如何更换?

文件有很多特殊字符。如何更换?

我有一个记录如下的文件:

CENTURY®KETTLEBELLS
COLEMANTT40°BAG
AlphaPro2¾TDLE
Lot™Stretch
M6×30

它通常在记事本文件中显示,但在终端中,当我捕获它时,它显示:

CENTURY▒KETTLEBELL
AlphaPro2▒TDLE
Lot▒Stretch
M6▒30

有没有办法来解决这个问题?我必须比较具有这些值的两个文件。由于 ▒ 一切都显示出差异。请帮忙

编辑:

这是文件编码:

$ file FULL_ITM.txt
FULL_ITM].txt: ascii text
$

这是 locale 命令的输出:

$ locale
LANG=en_US
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_MESSAGES="en_US"
LC_ALL=

结果如下:

 LC_ALL=C od -c FULL_ITM.txt
0000000    C   E   N   T   U   R   Y 302 256   K   E   T   T   L   E   B
0000020    E   L   L   S  \n   C   O   L   E   M   A   N   T   T   4   0
0000040  302 260   B   A   G  \n   A   l   p   h   a   P   r   o   2 302
0000060  276   T   D   L   E  \n   L   o   t 342 204 242   S   t   r   e
0000100    t   c   h  \n   M   6 303 227   3   0  \n
0000113

答案1

您使用的是 ISO-8859 语言环境,而文件是 UTF-8。

我的建议是为您的系统生成相应的 UTF-8 语言环境,并(永久)使用它而不是当前的语言环境。

不幸的是,您没有告诉我们您的操作系统或 Linux 发行版,因此以下是如何在 Debian 类型系统中配置区域设置

dpkg-reconfigure locales

作为 root,选择en_US包含 UTF-8 的版本。如果是您的系统,请将其设为默认值

相关内容