我有一个项目,我从 HTML 文件中抓取一些数据,将其放入 MySQL 数据库,然后再次读出并显示给用户。每当 servlet 向数据库中插入某些内容时,“£”符号将作为 � 插入,并在再次读出时显示为该符号。
该应用程序是用 Java(使用 Spring)和 JPA 编写的,使用 EclipseLink 作为 JPA 实现。
我已将问题缩小到插入 MySQL,因为当我在控制台中查看表时出现问号。
我已将 MySQL 配置为使用 UTF-8 作为 my.cnf 中的标准编码
[mysqld]
default-character-set=utf8
如果我跑
SHOW TABLE STATUS;
我可以看到表格上的排序规则是
utf8_general_ci
这表明字符集也是 UTF-8。
还有这个: mysql> SHOW CREATE DATABASE 门;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| gate | CREATE DATABASE `gate` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
那么,Java 完全是 unicode(?)并且我的数据库设置为 UTF-8,我可以在哪里查找错误配置/错误?
最佳答案
你有没有:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在您的 HTML 页面中?
关于java - 调试 MySQL 字符集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247005/