我在Tomcat 6 / Linux上从servlet读写UTF-8时遇到了一些问题。请求和响应是utf-8,浏览器是utf-8,在连接器和主机上的server.xml中都设置了URIEncoding。简而言之,代码本身对我来说所有已知的东西,服务器配置都是utf-8。
在读取请求时,我不得不从String中获取字节数组,然后再次将该字节数组转换为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