我在Tomcat 6/Linux上从servlet读取和编写UTF-8时遇到了一些问题.请求和响应是utf-8,浏览器是utf-8,URIEncoding是在连接器和主机上的server.xml中设置的.简而言之,代码本身对我来说每个已知的东西,服务器配置都是utf-8.
在读取请求时,我不得不从String中获取字节数组,然后再将该字节数组转换为String.写入请求时,我必须写入字节,而不是字符串本身,以便得到正确的响应(否则我会得到一个异常,说明某些非ASCII字符无效ISO 8859-1).
更改LANG环境变量是解决问题的一种方法.
官方方法是在sevlet过滤器中设置字符编码:http://wiki.apache.org/tomcat/Tomcat/UTF-8
一些背景信息:http://www.crazysquirrel.com/computing/general/form-encoding.jspx