由於歷史的原因,mysql在5.5.3以前的版本提供的utf8字符集並非是真正的utf8,它只是utf8的乙個子集,提供有限的utf8支援。從mysql5.5.3開始,mysql更改了內部細節實現,增加了乙個utf8mb4字符集,支援真正的unicode,長度由之前的最大3位延伸到4位,比如表情符之類的字集終於可以貯存到mysql。
無論mysql提供的是舊版本utf8字集還是utf8mb4,php 都能正確處理。
如果你的mysql版本支援utf8mb4,那麼最好在my.cnf中增加如下設定:
[client]在mysql中,變數名分隔符使用-或 _都是正確的,最好統一。default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = false
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='set names utf8mb4'
其它地方參考這裡。
ubantu解決mysql字符集utf8問題
以下綜合多個文件結合自己遇到的問題記錄的,僅做參考 修改my.cnf配置 sudo vim etc mysql my.cnf 加入mysql配置 mysqld character set server utf8 client default character set utf8 mysql defa...
修改mysql 字符集為UTF 8
1.從 usr share mysql 中拷貝 my large.cnf 到目錄 etc下,並改名字為 my.cnf 2.修改my.cnf 在檔案中找到 client 在其下面新增 default character set utf8 在 mysqld 下面加入 default character ...
MySQL字符集utf8與utf8mb4
mysql在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容四位元組的unicode。mysql支援的 utf8 編碼最大字元長度為 3 位元組,如果遇到 4 位元組的寬字元就會插入異常了。三個位元組的 utf 8 最大能編碼的 unicode 字...