我在Tomcat6/ Linux上从servlet读取和写入UTF-8时遇到了一些问题。请求和响应都是utf-8,浏览器是utf-8,在连接器和主机上的server.xml中都设置了URIEncoding。简而言之,我所知道的一切都是在代码中,服务器配置是utf-8。
在读取请求时,我必须从字符串中获取字节数组,然后再次将该字节数组转换为字符串。当写请求时,我不得不写字节,而不是字符串本身,以获得适当的响应(否则我会得到一个异常,说明某些非ASCII字符不是有效的ISO 8859-1)。
发布于 2009-04-03 18:53:43
更改LANG环境变量是解决该问题的一种方法。
官方的方法是在一个小程序过滤器中设置字符编码:http://wiki.apache.org/tomcat/Tomcat/UTF-8
一些背景信息:http://www.crazysquirrel.com/computing/general/form-encoding.jspx
发布于 2009-04-03 15:10:06
解决方案是将LANG环境变量设置为(在我的示例中) en_US.UTF-8,或者可能是任何其他UTF-8语言环境。我仍然对这样一个事实感到困惑:我不能从代码中做任何事情来使我的servlet正常运行。如果没有办法做到这一点,那么在我看来,它就是一个bug。
https://stackoverflow.com/questions/714339
复制相似问题