General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column


General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column

一、總結

一句話總結:

出錯原因是因為mysql中的utf8是3個字符,一些特殊的字符四個字符,需要用utf8mb4類型
解決方法就是將mysql的編碼改成utf8mb4

 

1、出錯原因?

a、我們可以看到錯誤提示中的字符\xF0\x9F\x98\x8A ,這對應UTF-8編碼格式中的4字節編碼(UTF-8編碼規范)。
b、正常的漢字一般不會超過3個字節,為什么為出現4個字節呢?實際上是它對應的是智能手機輸入法中的表情。
c、那為什么會報錯呢?因為mysql中的utf-8並不是真正意義上的utf-8,它只能存儲1~3個字節長度的utf-8編碼,如果想存儲4個字節的必須用utf8mb4類型。
d、不而要使用utf8mb4類型,首先要保證Mysql版本要不低於 MySQL 5.5.3。

 

 

2、解決方法?

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

 

 

 

二、General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column

博客對應課程的視頻位置:

 

MYSQL錯誤:

今天向數據庫插入一條數據時,有條數據的某個字段包含\xF0\x9F\x98\x8A字符,導致MYSQL數據庫出現以下錯誤:

General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column ...

 

錯誤原因:

我們可以看到錯誤提示中的字符\xF0\x9F\x98\x8A ,這對應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

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM