2016-09-26 88 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"));