小編的世界 優質文選 資料
字體大小:
2020年11月16日 -
:
樾棠琤琤
錯誤日志
一、原因分析
1、查看服務接口api編碼
通過UrlDecode對接口api解碼發現,接口使用方對接口api進行了GBK編碼。
2、查看mysql數據表中對應字段
發現數據表中的編碼格式是utf8的。
通過這個就可以很明顯的看出來,是因為存儲的數據是十六進制的字符
3、查看mysql字符集所支持的字節範圍
我們可以知道utf8最大支持3個字節的字符,查看mysql官網發現,mysql5.5.3之後,新增了一個與utf-8類似的字符集,utf8mb4,並且它的編碼支持4個字節每字符
二、解決方法
1、我們可以修改該字段的字符集格式為utf8mb4
2、我們可以通過修改mysql的my.cnf文件中的字符集鍵值,
2.1、在
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2.2、在
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
2.3、在
no-auto-rehash
default-character-set=utf8
修改完成後,service mysql restart重啟mysql服務就生效。注意:
2.4、如果上面的都修改了還有亂碼,在connection連接上進行編碼修改
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
三、總結
1、對接口api制定詳細使用說明 aName進行UTF-8編碼,避免剛接觸的使用者調到坑中。
2、系統中涉及編碼 統一使用UTF-8。