url1 : http://localhost:8080/file?fileName=%E4%B8%AD%E6%96%87
url2 : http://localhost:8080/file?fileName=中文
解码发生在tomcat里面,在给parameter设置值得时候,value如果是encode的value会被decode的,但是如果没有被encode的值,是不会被decode的。url1和url2经过tomcat到达spring容器的时候,fileName的值都是被转义过的。同是值会被设置编码格式,如图2所示。如果是UTF-8格式的话,中文还是可以显示的,如果不是UTF-8格式的话,如ISO-8859-1,则显示乱码,ä¸æ??。如果显示乱码了需要加3的代码,重新设置编码格式
Tomcat不同版本的默认编码格式
Tomcat7:ISO-8859-1
Tomcat8:UTF-8