2011-08-23 69 views
0

我使用UTF8编码的MySQL5.1作为字段customer_name。 但是,在UTF-8的JSP页面(以各种方式,meta标签等),它看起来是错误的。MySQL-UTF8到HTML转换问题

在数据库中,我看到:"Alѐ"

但在JSP它呈现为:"AlÑ "

这是相同的,当我查询:

select binary(name) from customer where customerID=X; 
"AlÑ؀" 

显然,最后一个字符从该查询不能在JSP上显示。 我无法确定哪里出错。 从查询结果RowSet中,我用普通的rs.getString(“name”)检索Java字符串。 我试着将MySQL变量character_set_connection设置为utf8(是latin1),但没有任何区别。它一定是一些非常微不足道的东西。

+1

你有没有正确设置名称? http://stackoverflow.com/questions/2159434/set-names-utf8-in-mysql – nonouco

+0

我应该检查字符串是否顺利从MySQL到Java内存。当您执行rs.getString(“name”)时,检查该String.codePointAt(2)是否等于232(0xE8)。 – helios

+0

如果不是,请尝试规范化字符串(UTF有两种方法来表示重音字符):'Normalizer.normalize'。查看http://download.oracle.com/javase/6/docs/api/java/text/Normalizer.html了解更多信息。 – helios

回答

0

你已经检查过你在数据库中有utf-8编码,为html页面设置了UTF-8字符集,而从java中连接了utf-8设置了mysql,是吗?

所以最后要检查的是,如何从DB中检索值?你还没有提到任何ORM?>