Linux 中 vim/more/cat/tail/head 命令查看文件顯示亂碼,亂碼原因:Linux默認字符集碼為 UTF-8 ,有些其它字庫未安裝
解決方法:
1)臨時解決方法將當前文件強制使用 UTF-8 顯示,在終端輸入命令
more note.txt | iconv -f GBK -t UTF-8
2)將當前文件通過 iconv 命令進行轉碼
iconv 命令
用法:
iconv [選項...] [文件...]
參數:
輸入/輸出格式規范:
-f --from-code=名稱 原始文本編碼
-t --to-code=名稱 輸出編碼
-c 從輸出中忽略無效的字符
-o, --output=FILE 輸出文件
-s, --silent 關閉警告
--verbose 打印進度信息
示例:
a)將文件GBK編碼轉換為UTF-8
源文件:note.txt 編碼:GBK
目標文件:tnote.txt 編碼:UTF-8
iconv -f gbk -t utf-8 -c note.txt -o tnote.txt
b)把 note.txt 文件中的“穿越”文本提取,並且把編碼從GBK轉碼為UTF-8保存
cat note.txt | iconv -f gbk -t utf-8 -c | grep "穿越" >> text.out
注意:
>>和>都屬於輸出重定向,<屬於輸入重定向
>會覆蓋目標的原有內容。當文件存在時會先刪除原文件,再重新創建文件,然后把內容寫入該文件;否則直接創建文件。
>>會在目標原有內容后追加內容。當文件存在時直接在文件末尾進行內容追加,不會刪除原文件;否則直接創建文件