最近遇到一個問題,在微信受權獲取用戶信息的時候,因爲微信暱稱(nickName)是表情,沒法存入數據庫。mysql
查其緣由,原來是由於數據庫的編碼格式不正確,個人是utf-8 改爲utf8mb4就能夠了。sql
其實utf-8是Mysql的一個Bug,此utf-8不是真正的咱們熟知的UTF-8,mysql中的utf8最多隻能支持3bytes長度的字符編碼,對於一些須要佔據4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行。數據庫
在mysql中請你們忘記**utf8**,永遠使用**utf8mb4**。避免之後採坑!!!微信
因此我在建立用戶表時候是這麼設置的編碼
ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用戶會員表';spa