看板 PHP 關於我們 聯絡資訊
就目前情況而言 問題是出在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