Shell-Script
文件有很多特殊字元。如何更換?
我有一個記錄如下的文件:
CENTURY®KETTLEBELLS COLEMANTT40°BAG AlphaPro2¾TDLE Lot™Stretch M6×30
它在記事本文件中正常顯示,但在我 cat 時在終端中顯示:
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
您使用的是 ISO-8859 語言環境,而文件是 UTF-8。
我的建議是為您的系統生成相應的 UTF-8 語言環境並(永久)使用它而不是您目前的語言環境。
不幸的是,您沒有告訴我們您的作業系統或 Linux 發行版,所以這裡是如何在 Debian 類型系統中配置語言環境
dpkg-reconfigure locales
作為 root,選擇
en_US
包含 UTF-8 的那個。如果它是您的系統,請將其設為預設值