参考资料:
http://www.cnblogs.com/lovingprince/archive/2011/04/12/2166254.html
字符编码
Jetty 8 get URI queryString 编码默认使用 UTF-8 编码,
可以通过request.setAttribute("org.eclipse.jetty.server.Request.queryEncoding","GBK"); 设定查询参数的编码,
如果不设定则默认读取系统属性 -Dorg.eclipse.jetty.util.URI.charset=GBK 的编码,如果系统属性也没有设定,则默认为 UTF-8 。
POST 参数默认使用 Content-type 中的 Charset 编码,如果 Charset 没有,则默认使用 UTF-8 编码,当然可以在使用之前使用 request.set CharacterEncoding 设定编码。
因为特殊需要,所以我的参数必须经过java.net.URLEncoder.encode(Content,"GBK");编码,所以在服务器获取的时候,jetty默认是utf-8,起先,我把jsp页面,servlet里面所有有关编码都改成request.setCharacterEncoding("GBK");
contentType="text/html; charset=GBK"
pageEncoding="GBK"
始终无解,因为jetty服务器内部还是默认自己的utf-8。
我的参数到servlet里面还是被强制转成了utf-8,
现在,我在servlet强制修改了jetty内部编码。
终于,可行了。
request.setAttribute("org.eclipse.jetty.server.Request.queryEncoding","GBK");
找了好久。
2014/06/11 15:41
这几天又想了一下,可以这样子设置。在server生成之前去设置这些属性。
server.setAttribute("CharacterEncoding", "GBK");
System.out.println(server.getAttribute("CharacterEncoding"));
这样服务器的属性直接被我们修改了,更直截了当,
记得在servlet里面获取的时候也注意下,request.setCharacterEncoding("GBK");