October 15, 2007
鼓勵此網誌:0
試了整個下午,AppServ 重灌了好幾次,什麼可能的方法都試過了,還是沒辦法解決 PHP+MySQL 亂碼的問題,嘗試過的方法有:
1. 把所有的編碼都轉成 utf-8,包括 MySQL 上的資料庫跟資料表、網頁編碼。
2. 把所有編碼都轉成 big5,包括 MySQL 上的資料庫跟資料表、網頁編碼。
都沒辦法解決亂碼的問題 (差不多快崩潰了
)
後來跟阿宗討論,才發現還有程式碼編碼這件事,若把資料庫跟資料表都設定成 utf-8,再把網頁編碼跟程式碼編碼設定成 big5,就可以在網頁中呈現正確的正體中文,但如果不是這種搭配(如上述1,2點以及網頁編碼跟程式碼編碼設定不符)就還是沒有辦法在網頁中呈現正體中文(搞不是很懂)。
不是很能理解是什麼原因,就把這結果跟過程先記錄下來,以免下次又遇到相同的問題(可能會有更好的解決辦法,但目前只發現這個
)。
1. MySQL 編碼設定成 utf8_unicode_ci or utf8_bin
2. 資料庫編碼改成 utf8_bin
3. 資料表編碼改成 utf8_bin
4. 這樣就表示更改完成
5. 把網頁中的編碼改成 big5
6. 最後一個比較奇怪的(傳統的NotePad也有這選項喔!)存檔的時候,要注意存成ANSI格式(一般存檔都是存這種,弄了整個下午不知道為什麼後來編碼跑掉,卡了好久)
另外有兩個要注意的地方:
1. 當修改過資料庫編碼後,原始資料庫中的資料會跑掉,即使設定正確也沒有辦法在網頁中正常顯示。
2. 直接在 phpMyAdmin 中新增正體中文資料,在 phpMyAdmin 中的瀏覽處沒有辦法正確顯示。
卡了整個下午的進度,問題是卡在這兩點,其實早就已經設定正確了,卻還是沒辦法顯示,差點沒把電腦砸了!
希望這篇"切身之痛"的文章能夠對現在遇到這個問題而火冒三丈的 PHP 初學者有所幫助
(PHP中、高手級人物應該能輕鬆解決這問題吧!阿宗應該算中手,卻也搞了好久︿︿,只能說,太久沒遇到就會忘記,忘記了就再查資料,遇到了只好記錄下來留著備查,希望再也不會遇到
!)
1. 把所有的編碼都轉成 utf-8,包括 MySQL 上的資料庫跟資料表、網頁編碼。
2. 把所有編碼都轉成 big5,包括 MySQL 上的資料庫跟資料表、網頁編碼。
都沒辦法解決亂碼的問題 (差不多快崩潰了
)後來跟阿宗討論,才發現還有程式碼編碼這件事,若把資料庫跟資料表都設定成 utf-8,再把網頁編碼跟程式碼編碼設定成 big5,就可以在網頁中呈現正確的正體中文,但如果不是這種搭配(如上述1,2點以及網頁編碼跟程式碼編碼設定不符)就還是沒有辦法在網頁中呈現正體中文(搞不是很懂)。
不是很能理解是什麼原因,就把這結果跟過程先記錄下來,以免下次又遇到相同的問題(可能會有更好的解決辦法,但目前只發現這個
)。





另外有兩個要注意的地方:
1. 當修改過資料庫編碼後,原始資料庫中的資料會跑掉,即使設定正確也沒有辦法在網頁中正常顯示。
2. 直接在 phpMyAdmin 中新增正體中文資料,在 phpMyAdmin 中的瀏覽處沒有辦法正確顯示。
卡了整個下午的進度,問題是卡在這兩點,其實早就已經設定正確了,卻還是沒辦法顯示,差點沒把電腦砸了!
希望這篇"切身之痛"的文章能夠對現在遇到這個問題而火冒三丈的 PHP 初學者有所幫助
(PHP中、高手級人物應該能輕鬆解決這問題吧!阿宗應該算中手,卻也搞了好久︿︿,只能說,太久沒遇到就會忘記,忘記了就再查資料,遇到了只好記錄下來留著備查,希望再也不會遇到
!)



