當中有一個難處是客戶提供的CSV出現中文亂碼,本來應該是UTF8的,他匯出了BIG5編碼。
本來日常對於這回事,是很簡單處理的。
可以用Notepad++人手轉換,或者用廣為人知的經典工具 - ConvertZ。
但這次我處理數百計的CSV,所以必須要支援Parameter,由SSIS中傳遞檔案路徑,而且CSV檔案是上1GB的,相信很多軟件打開都會Crash。
在這個網站找來知名的Iconv,滿心歡喜以為事情簡單,但轉出來的UTF8檔案,依然是亂碼。
研究過後是Iconv轉換出來的UTF8檔是沒有BOM ( 什麼是BOM? ),亦嘗試跟這裡做自行加上,但都不行。
最後在一個不起眼的討論串當中找到這個叫 UniConv的工具,效果十分好。
轉換1GB檔案竟然不用30秒。
一個小小的工具可以做大大的事。
執行命令很直接:
C:\uniconv.exe BIG5 "C:\chinese_input.txt" UTF8 "C:\chinese_output.txt"
如果還出現亂碼可以試一試把Output的編碼轉為"Unicode11:BOM:UTF8" 或 "Unicode20:BOM:UTF8",之於三者有什麼分別,我就沒有去研究了。
其他參數和編碼可以看Readme檔案 - uniconv.txt。
下載 UniConv 或 由我的Dropbox下載
一開始總覺得這個工具很神秘,細看之下原來已經是1998年編譯的,由一間叫Basis Technology所寫,但現在連官網上都找不到這個工具了。
GOOD
回覆刪除無法下載 是否可以提供 有效路徑??
回覆刪除