用webmagic将网站的内容下载后,直接读取某个div的内容入库的时候报了错误:java.sql.SQLException: Incorrect string value: '\x816\xA38\x816...',
百度后都是修改数据库的设置。
将打印字符串内容复制到文本编辑器中,转码成gbk编码,发现原本是空格处出现了乱码,与浏览器打开原网页的源码对应,源码是 ;即空格的转移符号,更具体的原因未调试;
洒家这边的解决办法是在字符串入库之前转码,即:
private String encodeString(String str, String encode) {
String returnStr = null;
try {
returnStr = new String(str.getBytes(encode),encode);
} catch (UnsupportedEncodingException e) {
return str;
}
return returnStr;
}
String content = encodeString(" 大数据","GBK");
以上代码运行后并不能复现问题,空格是洒家手敲的;
空格如果是有乱码的,转码后打印content会出现"????大数据"类似文字