MySQL有個utf-8的坑 MySQL 的 utf8 實際上不是真正的 UTF-8。utf8 只支持每個字元最多三個位元組,而真正的 UTF-8 是每個字元最多四個位元組。 ...
MySQL有個utf-8的坑
MySQL 的 utf8 實際上不是真正的 UTF-8。utf8 只支持每個字元最多三個位元組,而真正的 UTF-8 是每個字元最多四個位元組。
MySQL 一直沒有修複這個 bug,他們在 2010 年發佈了一個叫作 utf8mb4 的字元集,繞過了這個問題。當然,他們並沒有對新的字元集廣而告之(可能是因為這個 bug 讓他們覺得很尷尬),以致於現在網路上仍然在建議開發者使用 utf8,但這些建議都是錯誤的。
簡單概括如下:
(1)MySQL 的 utf8mb4 是真正的 UTF-8。
(2)MySQL 的 utf8 是一種專屬的編碼,它能夠編碼的 Unicode 字元並不多。