MYSQL錯誤:
今天向數據庫插入一條數據時,有條數據的某個字段包含xF0x9Fx98x8A字符,導致MYSQL數據庫出現以下錯誤:
[10501]SQLSTATE[HY000]: General error: 1366 Incorrect string value: 'xF0x9Fx98x82xEFxBC...' for column 'info' at row 1
錯誤原因:
我們可以看到錯誤提示中的字符xF0x9Fx98x8A ,這對應UTF-8編碼格式中的4字節編碼(UTF-8編碼規范)。正常的漢字一般不會超過3個字節,為什么為出現4個字節呢?實際上是它對應的是智能手機輸入法中的表情。那為什么會報錯呢?因為mysql中的utf-8并不是真正意義上的utf-8,它只能存儲1~3個字節長度的utf-8編碼,如果想存儲4個字節的必須用utf8mb4類型。不而要使用utf8mb4類型,首先要保證Mysql版本要不低于 MySQL 5.5.3。

解決:
1. 首先改變數據庫的字符的編碼格式為utf8mb4;
2. 再一個修改數據庫連接的配置,本人用的是php,所以修改數據庫連接編碼格式為utf8mb4