获取腾讯微博的评论 插入数据库的时候报这样的错误
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x82' for column 'content' at row 1
上网查一些资料 是评论中存在特殊字符
修改数据库和表中的字符集仍无效
alter table t_mb_sessiondet modify column `content`text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL;请问那位大侠帮忙解决下
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x82' for column 'content' at row 1
上网查一些资料 是评论中存在特殊字符
修改数据库和表中的字符集仍无效
alter table t_mb_sessiondet modify column `content`text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL;请问那位大侠帮忙解决下
再插入试试
MySQL 中文显示乱码
所以你 SHOW FULL COLUMNS FROM table 看一下 字段字符集
应该需要更改字符集,才能插入
你可以先执行 set names gbk 之类的操作
set names gbk/utf8/utf8mb4 重启mysql 测试又出现了
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...' for column 'content' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
这个肯定是字符集的问题 但不知道具体怎么设置
可能数据类似 ^_^¦¦¦^_^¦¦¦ 这样的特殊字符
set names gbk/utf8/utf8mb4 重启mysql 测试又出现了
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...' for column 'content' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
这个肯定是字符集的问题 但不知道具体怎么设置
可能数据类似 ^_^¦¦¦^_^¦¦¦ 这样的特殊字符
调用了set names gbk 语句之后是不重启mysql的
建议你查一下 set names语句,就懂了。
你出现的问题应该就是字符集问题。