2009-08-07 41 views
1

我有一个项目,我从HTML文件中抓取一些数据,将其放入MySQL数据库,然后再读出并显示给用户。每当servlet向DB中插入某些内容时,“£”符号将作为inserted插入,并在再次读出时显示为。调试MySQL字符集错误

该应用程序使用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 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

你有:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
在HTML页面中

0

一节你也应该告诉你的mysql驱动程序使用UTF8

db.url=jdbc:mysql://HOST:3306/DB?characterEncoding=utf8