: 虽然我已经选择字段语系为“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 的选项
如果这样会从乱码变成能读的文字,那就是浏览器这段的问题了