2016-09-26 54 views
0

跟蹤:JDBC MySQL的商店表情符號,而不utf8mb4編碼

2016-09-26 06:52:43.756 WARN 1280 --- [ XNIO-2 task-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1366, SQLState: HY000
2016-09-26 06:52:43.756 ERROR 1280 --- [ XNIO-2 task-1] o.h.engine.jdbc.spi.SqlExceptionHelper : Incorrect string value: '\xF0\x9F\x80\x84' for column 'name' at row 1

據我所知,MySQL不想要的表情符號存儲和我應該改變編碼utf8mb4,但有隻存儲一個字符串'的方式\ xF0 \ x9F \ x80 \ x84'而不是''?

回答

0

您可能想要對存儲在該字段中的值進行編碼/解碼。如果考慮例如MimeUtility做到這一點,你的大部分(拉丁)字母仍然是可讀:

st.setString(1, MimeUtility.encodeWord(nameWithEmoji)); 

安檢索至極

String nameWithEmoji = MimeUtility.decodeWprd(rs.getString("name"));