UTF-8 這種編碼已經是大勢所趨,但是還有不少中文的文檔保留着老式的 GB2312編碼,而且只要你要和 Windows 打交道,就免不了要處理 GB2312 的問題,比如處理從 Windows 下拷過來的程序源代碼、文本文件、字母文件之類。
編碼轉換的方法估計大多數同學都知道了,不過還是有必要再強調一下,我就是老忘。
Linux 下的 iconv 命令可以來處理字符編碼的轉換,基本命令格式如下:
iconv -f 原始編碼 -t 目標編碼 文件名 > 新文件名
-f 代表 from,-t 代表 to。
假設我要把 text.txt 從 GB2312 編碼轉換成 UTF-8,並且保存爲 text-utf-8.txt 的話,那麼命令如下:
iconv -f GB2312 -t utf-8 text.txt > text-utf-8.txt
不過有的時候,轉換會報錯,很可能的原因是原文件中有些字符超過了 GB2312 的範圍,那麼,這個時候,我們可以把 GB2312 改成它的超集 GB18030,一般就解決問題了:
iconv -f gb18030 -t utf-8 text.txt > text-utf-8.txt