fbpx
分類
Diary

難搞的東西 之二

剛剛心血來潮,繼續未完成的 PHProjekt 中文化,
搞了半天,總算將令人厭惡的事情處理掉了..

問題:
中文化檔案用的是 Big5 編碼,但因為我的 MYSQL 跑的是 UTF-8,
所以儲存資料時會變成 UTF-8 編碼,而這隻程式寫得不錯,
相容於 UTF-8,但在網頁編碼部份卻寫得十分沒有彈性..
任何不能顯示的東西它都假設是西歐編碼 Orz

同樣的狀況也發生在 WebCalendar.. 吼喔喔,搞什麼鬼..

結果:
設定成 Big5 編碼檢視時,資料檢視就會變成亂碼;
設定成 UTF-8 編碼檢視時,介面中文化的部份就會變成亂碼。

解決方式有以下:
1. 把 MYSQL 幹掉,改裝較舊不支援 UTF-8 的版本
2. 用 iconv 函式在資料讀出來的時候,將之轉換為 Big5
3. 用 iconv 函式將 Big5 中文化資料轉成 UTF-8 編碼

很明顯地,3 是非常明智的抉擇,
而且完全不會碰到許功蓋先生.. (大汗)

不過在想出方案 3 的時候,
我和 big5_func 函式庫、iconv 函式庫,
以及一堆莫名奇妙的程式碼奮鬥了很久.. |||

結論:
Big5 是什麼雕啊.. 太難搞了吧 (翻桌)

在〈難搞的東西 之二〉中有 4 則留言

你好,近日也在解决这个问题,可否把具体解决方案分享,谢谢!

後來我直接把資料全部改用 UTF-8 處理了,
信件轉出部分,在文字內容中,加上 iconv 轉換字碼,
因此編碼就全部正常了。

如何正常讓 PHP5 與 MySQL 正常使用 UTF-8,
我在最近的一篇文章中有提到,供您參考 :)

請教一下,你WebCalendar的完全utf-8如何達成的?
我把程式從big5改成utf-8後,系統寄出來的信件會變成utf-8的亂碼(郵件伺服器沒幫忙改成utf-8),必須手動調整編碼才能正常顯示 :(

嗯.. 郵件的 UTF-8 其實滿好處理的,
主要是因為在寄送郵件時,信件的標頭沒有註明是 UTF-8 所導致

上網查一下 MIME 的 header 資訊,就能找到相關設定方式囉 :)

發表迴響