使用 JDBC 连接器 5.1 从 Java 在 MySQL 中读取/写入 UTF-8 数据时出现问题
我有一个场景,有两个MySQL数据库(UTF-8),一个Java代码(定时服务),同步两个数据库(首先读取表单,然后写入/更新到第二个)和一个Web应用程序,允许修改加载到第二个数据库中的数据。
所有数据库访问都是使用IBATIS进行的(但我检测到我在使用JDBC,s和s时遇到了同样的问题)PreparedStatement
ResultSet
当我的java代码从第一个数据库中读取数据时,我会获得字符,就像它实际上必须是.写入此数据时无需修改第二个数据库。'ó'
'ó'
稍后,当我在 Web 应用程序中看到加载的数据时,我看到了 extrange 字符,尽管 .<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
如果我使用...
new String(data.getBytes("UTF-8"));
...我正确地想象了字符(ó)。但是我不能将此解决方案用作一般规则,因为当我使用Web应用程序表单修改数据时,数据不会在我的第二个数据库中以UTF-8更新(尽管数据库是UTF-8并且我的连接字符串使用charthEncoding,characterSetResults和useUnicode参数)。
从我的Java代码中,我获得了以下数据库设置:
character_set_client-->utf8
character_set_connection-->utf8
character_set_database-->utf8
character_set_filesystem-->binary
character_set_results-->utf8
character_set_server-->latin1
character_set_system-->utf8
character_sets_dir-->/usr/local/mysql51/share/mysql/charsets/
character_set_server设置无法更改,我不知道我做错了什么!
如何使用 JDBC 连接器 () 从 MySQL 读取 UTF-8 数据?mysql-connector-java-5.1.5-bin.jar
是从第一个数据库读取数据还是写入第二个数据库有问题?