今天設置數據庫的字符集編碼格式時發現有個utf8,同時還有utf8mb4,這個utf8mb4是個什麼東西呢? 原來,mysql在5.5.3版本以後增長了utf8mb4編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。其實utf8mb4是utf8的超集,若是原來的數據庫字符編碼格式是utf8,如今改爲utf8mb4,也不會出現什麼問題,只是爲了節省空間,通常採用utf8就夠了。 可是爲何要出現utf8mb4呢? 最近在開發的過程當中,遇到一個問題,評論時輸入表情(emoji)存入到數據庫報錯的問題,由於emoji是一種特殊的unicode編碼,它是採用四字節編碼的,二數據庫設置成utf8,最大長度爲三字節,因此插入表情到數據庫時,數據庫會報錯。mysql