我面临的问题,当尝试插入特殊的符号,如磅字符( DB或里尔)在DB中。这些将显示为??在前端
我们使用tomcat作为应用服务器,并在其中进行了以下配置
URIEncoding="UTF-8"在将文本插入到DB之前,我们将执行以下检查
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"编码
有人能帮个忙吗?
提前感谢
发布于 2012-05-17 23:11:11
您要求Tomcat提供格式为UTF-8的值,然后将其转换为基于ISO-8859-1字符集代码点的字节数组。然后将这些值直接转换回UTF-8代码点,这会导致字符乱码。
只需删除转换内容,将URIEncoding="UTF-8"条目保留在您的配置中,它就会正常工作。
此外,请记住您的输出编码很重要。如果您要发回UTF8编码的页面,但是在页面的meta标记或Content-Encoding响应报头中设置了不同的编码,那么对于某些字符,您将得到乱码的结果。
https://stackoverflow.com/questions/10638343
复制相似问题