字符的URI编码问题,如英镑符号(£或₤)

时间:2012-05-17 15:06:08

标签: java jsp tomcat character-encoding

我在尝试在DB中插入像磅字符(£或₤)这样的特殊符号时遇到问题。这些显示为??在前端

我们使用tomcat作为app服务器并且在那里进行了以下的配置

URIEncoding="UTF-8"

在将文本插入数据库之前,我们正在执行以下检查

String Text = new String(request.getParameter("Text").getBytes("8859_1"),"UTF-8");

我对上面代码的作用不太了解

但是当我从tomcat server.xml中删除"URIEncoding="UTF-8"时,这些字符正在加载

根据http://confluence.atlassian.com/display/DOC/Configuring+Tomcat%27s+URI+encoding默认情况下,tomcat使用"ISO-8859-1"编码

有人可以帮忙吗?

先谢谢

1 个答案:

答案 0 :(得分:3)

您要求Tomcat为您提供格式化为UTF-8的值,然后将其转换为基于ISO-8859-1字符集代码点的字节数组。然后,您将这些值直接转换回UTF-8代码点,这会导致字符变得混乱。

只需删除转换内容,将URIEncoding="UTF-8"条目保留在配置中,它就可以正常工作。

另外,请记住输出编码很重要。如果您要发送回UTF-8编码的网页,但在网页的元标记或Content-Encoding HTTP响应标头中设置的编码设置不同,那么您的结果会出现乱码字符。