星期六, 11月 11, 2006

第一次編寫UTF-8

自己以SOHO從事程式編寫五年,  對程式編寫仲算有些經驗, 今天開始開多一個文章分類, 和大家分享程式編寫的事. 今天要寫的, 就是 UTF-8.

(這類文章對像是有程式編寫知識的人, 如果沒有這經驗, 就可能無法理解了)




編寫網誌管理系統系統的一個目的, 就是讓我去了解 UTF-8.

我之前有寫個網頁和網上的應用系統, 都是用BIG5, 但發現越來越多人使用UTF-8, 包括 SinaBlog, 所以有興趣去了解一番.

UTF-8 的一個好處, 就是可以在同一篇文章輸入繁體和 "简体", 不過, 原來對程式編寫來說, 內有很多東西要去處理.

例如我編寫的網誌管理系統, 所有系統的STRING, 我會先用繁體, 在pass給Browser前, 我要用UTF8Encode把所有字串轉為UTF-8.

當收到Browser的Request時, 我又要把input用UTF8Decode轉回繁體, 然後儲存在資料庫. 到要取回資料時, 我又要把資料轉回UTF-8. 就這樣, 問題出現了.

例如要把 "浅谈" 這兩個UTF-8的简体字轉為繁體, 用String儲存, 會出現 ?? 的. 就必須用WideString儲存起, 但要資料庫儲存WideString又會遇到問題, 這個真令我煩惱.

另一個處理的方法, 就是把Browser取得的UTF-8字串直接儲存在資料庫,   但在我編寫系統時, 我要先將系統內的字串, 例如 "網誌管理系統" Encode 為 UTF-8 先, 加埋資料庫的UTF-8資料, 傳給 Browser 嗎?

最慘的是, 外國沒有繁簡字的麻煩, 想問也不知到那裡問, 想學也不知在那裡學, 在Google尋找了很久, 也找不到想要的答案. 不知大家有沒有編寫這類系統的經驗, 可以分享一下嗎?