作者GALINE (天真可愛CQD)
看板PHP
標題Re: [MySQL] 請問如何存取多國語言的欄位?
時間Fri May 29 23:32:43 2015
: 雖然我已經選擇欄位語系為「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
推 red0whale: 謝謝你 不過不是瀏覽器讀碼的問題 我已經選擇utf-8的選 05/30 16:07
→ red0whale: 項了 但是他還是亂碼 我覺得是character_set_server這 05/30 16:09
→ red0whale: 個選項在作祟,縱使其他選項的character_set編碼都已經 05/30 16:10
→ red0whale: 改成utf8了,這個選項依舊還是latin1,而我是租虛擬主 05/30 16:12
→ red0whale: 機的,不曉得這個選項的編碼能不能改還是個問題... 05/30 16:13
→ GALINE: 先ini_set()試看看? 雖然主機給改的機會不高... 05/30 23:52