@Override
public void setReadListener(ReadListener readListener) {
}
@Override
public int read() throws IOException {
return byteArrayInputStream.read();
}
@Override
public boolean isReady() {
return false;
}
@Override
public void setReadListener(ReadListener readListener) {
}
};
return servletInputStream;
}
@Override
public BufferedReader getReader() throws IOException {
return new BufferedReader(new InputStreamReader(this.getInputStream(), "UTF8"));
}
@Override
public String getEncoding() {
return "UTF8";
}
二、从服务器环境入手 在本地开发时,由于是windows环境,编码格式默认为GBK;而服务器部署的Linux环境默认编码为UTF8,这就导致了文件编码不匹配的问题。
解决:将所有项目源码文件的编码格式统一改为UTF8。
三、从Tomcat配置入手 查看了Tomcat的配置后发现,默认情况下Tomcat会使用ISO88591编码来处理请求和响应数据。
解决:修改Tomcat的配置文件server.xml,将其中的Connector端口的URIEncoding属性设置为“UTF8”,并重启Tomcat服务。
四. 从web应用的配置入手 检查web应用的配置文件web.xml,确认是否有设置请求编码过滤器或者字符编码的设置。
解决:在web.xml中添加如下配置: ... <filter> <filtername>Character Encoding Filter</filtername> <filterclass>org.springframework.web.filter.CharacterEncodingFilter</filterclass> <initparam> <paramname>encoding</paramname> <paramvalue>UTF8</paramvalue> </initparam> <initparam> <paramname>forceEncoding</paramname> <paramvalue>true</paramvalue> </initparam> </filter> <filtermapping> <filtername>Character Encoding Filter</filtername> <urlpattern>/*</urlpattern> </filtermapping> ... 以上步骤完成后,乱码问题得到了解决。