也说TOMCAT中文乱码问题 request的setCharacterEncoding必须在getParameter之前执行_深圳漂者_百度空间
setCharacterEncoding
public void setCharacterEncoding(java.lang.String env) throws java.io.UnsupportedEncodingException
Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().
request的setCharacterEncoding必须在getParameter之前执行,也就是说传说中的GBK编码下Ajax乱码问题,可以使用Servlet Filter避免乱码,在Filter里通过判断是否是Ajax请求来通过request.setCharacterEncoding设置相应的编码。
应用程序在Servlet Filter 或Controller程序中通过setCharacterEncoding设置先后两次不同的字符集如setCharacterEncoding("UTF-8")和setCharacterEncoding("GBK"),在不同的应用服务器下会有不同的效果,在Tomcat是以第一次设置的字符集为准,该案例中是以"UTF-8"为准;而Weblogic则以最后一次为准,以"GBK"为准。