2013年9月26日 星期四

Linux 文字編碼的轉檔

這幾天在處理Mysql資料庫編碼,(latin1 轉到 UTF-8),常常遇到mysqldump下來的資料庫文字檔

大小都在100MB以上,一般人想要載到桌機上用Windows的文字編輯器(如EmEditor)轉檔,常常

一開啟檔案都是當掉,

如果可以用ConvertZ這套工具來轉換當然是最好,

如果還是不行,可以試試看放到Linux透過vi以及icon工具來進行轉檔。

由Big5轉到UTF-8

iconv -f big5 -t utf-8 couhist.sql -o couhistutf8.sql

如果遇到類似下面的提示 : 位置 18990956 有不合法的輸入序列,是指第18990956 字元有問題!!

表示你的原始文字檔中有不正常的字元,通常都是 堃 / 煊 / 喆 這些字所引起的,

可以加入 -c 的參數來跳過有問題的字元,

iconv -f big5 -t utf-8 couhist.sql -o -c couhistutf8.sql

如此可順利轉出,但是有問題的資料列會被跳過,

如果要保持完整性,那麼必須要由vi去打開原始檔案來把有問題的字碼改掉 

(這是一個很大個工程啊!!!!)



沒有留言:

張貼留言