我有一个数据库与MEDIUMBLOB
字段在表中与ENGINE=InnoDB DEFAULT CHARSET=utf8
在每个表上。MySQL,Java和UTF8
我通过URL连接到useUnicode=true&characterEncoding=UTF8&character_set_client=UTF8&character_set_database=UTF8&character_set_results=UTF8&character_set_server=UTF8&character_set_system=UTF8
的数据库。
(我曾尝试只用useUnicode=true&characterEncoding=UTF8
相同的结果。)
当我使用的命令行mysql
数据库看价值,我可以看到非ASCII字符就好了。
但是,当我从数据库中使用executeQuery()
getString()
从字符串中读取时,我得到了乱码。我如何正确读取值?
我正在使用log4j来显示我正在写入数据库的字符串,而那些我读回的,以及我写的显示正常。
那你怎么*显示*这些字符串?如果它是通过一个Web应用程序或类似的东西,那可能是你从数据库中获得了正确的数据,但是当它需要被编码发送到浏览器时出现了问题。 –
(我假设“乱码”是指你期望非ASCII字符的所有奇怪字符,又名[mojibake](http://en.wikipedia.org/wiki/Mojibake)重新看到只是问号,这是一个不同的问题。) –
如果它被解决,我会很高兴,你使用控制台显示?该设备显示你的字符? –