方案简写,本身或有些基础的能够看懂,由于没时间写的那么详细spring
方案1tomcat
spring mvc解决get请求中文乱码问题,服务器
在tamcat中server.xml文件mvc
URIEncoding="UTF-8"
useBodyEncodingForURI="true"编码
为了确保get数据采用UTF8编码 spa
@ModelAttributeserver
方案2。xml
tomcat的服务器的默认编码是ISO8859-1,因此在容器中获取的请求数据能够从新编码显示utf-8
例如你在控制层 controller 获取一个filename的字符串字符串
你能够采用
filename = new String(filename.getBytes("ISO889-1"),"UTF-8");
这种方式将filename以tomcat的的默认编码方式进行编码,而后以utf-8的编码方式进行解码,这样就能够获取正常的中文了,由于utf-8编码是支持中文显示的
这种方式其实就是告诉tomcat容器要以utf-8的形式进行解码,这样出来的字符串就不会乱码了,具体的为什么要从新以iso8859-1进行编码,而后指定utf-8解码
而不是直接指定UTF-8解码,这种问题要去看源码了,本身研究
下面是我本身的理解:
我能够这样理解,好比tomcat的默认编码格式是ISO889-1,而你传过来filename默认是以ISO889-1解码的,而ISO889-1不支持中文,因此乱码,这样你就
再以ISO889-1的形式进行编码,回到二进制字节码的状态,而后指定utf-8解码,就支持中文了,因此显示ok
方案3:
总结:只要是进入到tomcat容器中乱码的能够采用这种最原始而有效的方法进行解决,除非有其余特殊要求
String filename=é误失误æå¿æ»ç».docx;
filename = new String(filename.getBytes("ISO889-1"),"UTF-8");