spring mvc 文件下载 get请求解决中文乱码问题

方案简写,本身或有些基础的能够看懂,由于没时间写的那么详细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");

相关文章
相关标签/搜索