作者buganini (霸格尼尼)
看板PHP
標題Re: [請益] MySQL 編碼問題
時間Fri Mar 4 23:27:24 2011
就目前情況而言
問題是出在insert前沒有set names utf8
而預設的names是latin1
所以實際上是utf8的資料就被誤當作latin1再轉成utf-8
也就是iconv("iso-8859-1","UTF-8","I AM UTF-8 STRING");
(latin1跟iso-8859-1的關係可見
http://dev.mysql.com/doc/refman/5.0/en/charset-we-sets.html)
也就是說NAMES這個東西代表client side I/O的encoding
mysql本身會做server-client之間的encoding conversion
就降..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.93.132
→ buganini:也就是說在正確的情況下 假設db裡面是utf-8 03/04 23:27
→ buganini:要輸出到big5網頁時只要set names big5就好了 03/04 23:28
→ buganini:不用自己轉 這也是為什麼每個db/table的encoding設定不 03/04 23:28
→ buganini:一樣的時候phpmyadmin都不會亂碼 因為只要db裡面的東西是 03/04 23:29
→ buganini:對的 phpmyadmin這邊set names utf8 拿到的就都是utf-8 03/04 23:29
→ buganini:至於預設是latin1這件事 可能是舊時代的遺毒吧.. 03/04 23:31
推 zoeysui:感謝哦! 我來研究看看~ 03/05 21:36