Re: [MySQL] 請問如何存取多國語言的欄位?

看板PHP作者 (天真可愛CQD)時間10年前 (2015/05/29 23:32), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串3/3 (看更多)
: 雖然我已經選擇欄位語系為「utf8mb4_unicode_ci」了,但是為什麼它還是會出現亂碼呢? 亂碼這件事情其實滿複雜的...大致上有這些東西 - 你的資料在 DB 裡面被存成什麼編碼 - OK, utf8mb4 - PHP 跟 DB 之間的連線用的是什麼編碼 - 看你怎麼連 DB 的,就用哪種方式來做 mysql_set_charset($conn, 'utf8mb4'); $conn = new PDO('mysql:charset=utf8mb4'); - 你的 PHP 本身會輸出什麼編碼 - php.ini 裡面 default_charset 設定成 UTF-8 (沒有MB4) - 瀏覽器把 PHP 輸出的結果當成什麼編碼 - header('Content-Type: text/html; charset=utf-8'); // 透過 HTTP header 設定 - <head><meta charset="utf-8"></head> // 或是在 html 的 head 區塊設定 我第一個會猜是瀏覽器這邊的問題就是了,這個也最好確認 瀏覽器的功能表裡面找到「語言與編碼」之類的東西 然後選看起來像 unicode 或 utf-8 的選項 如果這樣會從亂碼變成能讀的文字,那就是瀏覽器這段的問題了 -- 這閃電拳能射出雷射光,威力每平方公分一萬億瓦特 威力無比,拳到之處,攻無不克 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.89.5 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1432913566.A.0DB.html

05/30 16:07, , 1F
謝謝你 不過不是瀏覽器讀碼的問題 我已經選擇utf-8的選
05/30 16:07, 1F

05/30 16:09, , 2F
項了 但是他還是亂碼 我覺得是character_set_server這
05/30 16:09, 2F

05/30 16:10, , 3F
個選項在作祟,縱使其他選項的character_set編碼都已經
05/30 16:10, 3F

05/30 16:12, , 4F
改成utf8了,這個選項依舊還是latin1,而我是租虛擬主
05/30 16:12, 4F

05/30 16:13, , 5F
機的,不曉得這個選項的編碼能不能改還是個問題...
05/30 16:13, 5F

05/30 23:52, , 6F
先ini_set()試看看? 雖然主機給改的機會不高...
05/30 23:52, 6F
文章代碼(AID): #1LQ8QU3R (PHP)
文章代碼(AID): #1LQ8QU3R (PHP)