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

作者: GALINE (天真可愛CQD)   2015-05-29 23:32:43
: 雖然我已經選擇欄位語系為「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 的選項
如果這樣會從亂碼變成能讀的文字,那就是瀏覽器這段的問題了
作者: red0whale (red whale)   2015-05-30 16:07:00
謝謝你 不過不是瀏覽器讀碼的問題 我已經選擇utf-8的選項了 但是他還是亂碼 我覺得是character_set_server這個選項在作祟,縱使其他選項的character_set編碼都已經改成utf8了,這個選項依舊還是latin1,而我是租虛擬主機的,不曉得這個選項的編碼能不能改還是個問題...
作者: GALINE (天真可愛CQD)   2015-05-30 23:52:00
先ini_set()試看看? 雖然主機給改的機會不高...

Links booklink

Contact Us: admin [ a t ] ucptt.com