作者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://webptt.com/cn.aspx?n=bbs/PHP/M.1432913566.A.0DB.html
1F:推 red0whale: 谢谢你 不过不是浏览器读码的问题 我已经选择utf-8的选 05/30 16:07
2F:→ red0whale: 项了 但是他还是乱码 我觉得是character_set_server这 05/30 16:09
3F:→ red0whale: 个选项在作祟,纵使其他选项的character_set编码都已经 05/30 16:10
4F:→ red0whale: 改成utf8了,这个选项依旧还是latin1,而我是租虚拟主 05/30 16:12
5F:→ red0whale: 机的,不晓得这个选项的编码能不能改还是个问题... 05/30 16:13
6F:→ GALINE: 先ini_set()试看看? 虽然主机给改的机会不高... 05/30 23:52