因此,我正在尝试将博客评论输入到数据库中以进行NLP实验,但我遇到了一些问题:我在插入操作上使用了prepare语句,但所有的单引号都变成了问号。
我在OS上测试,但不知道字符编码:我假设它是默认的isn_swedish,等等,但经过几个小时的零散谷歌搜索,我还没能弄清楚如何确定它。我提交了一些类似“我没有说过”这样的话
PreparedStatement statement = connect.prepareStatement("INSERT IGNORE INTO bwog.article (article_id, date, title, content, url) VALUES (?, ?, ?, ?, ?)");
...
...
String s = "I didn't say that"; //not literal string, but printlns like this
statment.setString(4, s);在执行之后,它会在数据库中变成“我没有说过”等等。
我假设这是一种假设问题,我不知道或者忘记了满足一些前提条件。
解决方案:这是字符编码。数据库和表都是UTF-8格式的,但是所有"character_set%“变量的命令行连接都是latin1格式的,所以即使数据是好的,它看起来也是乱码的。
发布于 2012-06-30 11:51:26
为了将其从“未应答”过滤器中删除...
预测:您的问题是字符编码。我敢打赌您的数据库和表都是UTF-8格式的,但是对于所有的"character_set%“变量,您的命令行连接都是latin1格式的,所以即使数据是好的,它看起来也是乱码的。
https://stackoverflow.com/questions/9595946
复制相似问题