我有一个项目,我从HTML文件中抓取一些数据,将其放入MySQL数据库,然后再次读出并显示给用户。每当servlet将一些内容插入数据库时,“£”符号将作为inserted插入,并在再次读出时以此形式显示。
应用程序使用Java(使用Spring)和JPA编写,EclipseLink作为JPA实现。
我已将问题缩小到插入MySQL,因为当我在控制台中查看表时会出现问号。
我已将MySQL配置为使用UTF-8作为my.cnf中的标准编码
[mysqld]
default-character-set=utf8
如果我跑
SHOW TABLE STATUS;
我可以看到表上的排序规则是
utf8_general_ci
表明char集也是UTF-8。
还有这样的: MySQL的> SHOW CREATE DATABASE gate;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| gate | CREATE DATABASE `gate` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
那么,Java是完全unicode(?)而我的数据库设置为UTF-8,我在哪里可以查找错误配置/错误?
答案 0 :(得分:0)
你有:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在您的HTML页面中?
答案 1 :(得分:0)
你的连接字符集是什么?请查看Connect/J configuration properties以及dealing with charsets
上的部分答案 2 :(得分:0)
您还应该告诉您的mysql驱动程序使用utf8
db.url=jdbc:mysql://HOST:3306/DB?characterEncoding=utf8