公司用的是mysql5.6,該異常是mysql字元集問題,mysql支持的 utf8編碼最大字元長度為 3 位元組,如果遇到表情符這樣的4 位元組的字元就會插入異常。 解決方法: 1.在資料庫層面處理,重新設置資料庫編碼,對資料庫數據進行遷移,對單資料庫應用需停機操作; 2.在程式中進行處理,一般項目都 ...
公司用的是mysql5.6,該異常是mysql字元集問題,mysql支持的 utf8編碼最大字元長度為 3 位元組,如果遇到表情符這樣的4 位元組的字元就會插入異常。
解決方法:
1.在資料庫層面處理,重新設置資料庫編碼,對資料庫數據進行遷移,對單資料庫應用需停機操作;
2.在程式中進行處理,一般項目都使用了連接池,可以在物理連接初始化的時候執行set names utf8mb4;
如c3p0、druid;
a.c3p0參考:配置文件1、配置文件2、InitSqlConnectionCustomizer擴展類、具體使用
b.druid參考:園子里找的一個阿裡druid 介紹及配置,這裡關註connectionInitSqls/initConnectionSqls屬性;
收工。