zoukankan      html  css  js  c++  java
  • spring mvc 文件下载 get请求解决中文乱码问题

    方案简写,自己或有些基础的可以看懂,因为没时间写的那么详细

    方案1

    spring mvc解决get请求中文乱码问题,

    在tamcat中server.xml文件


    URIEncoding="UTF-8"
    useBodyEncodingForURI="true"

    为了确保get数据采用UTF8编码 

    @ModelAttribute

    方案2。

    tomcat的服务器的默认编码是ISO8859-1,所以在容器中获取的请求数据可以重新编码显示

    例如你在控制层 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");

  • 相关阅读:
    linux常见的编码转换
    linux sort的用法
    转--11个失败之后
    shell入门
    迟到
    必须要回答的问题
    【转载】个人开发者要掌握的时间规划建议
    Unity 碰撞检测 OnTriggerEnter 入门
    浅谈BUFF设计
    随机掉宝,对玩家来讲真的随机吗?
  • 原文地址:https://www.cnblogs.com/zhangzhen894095789/p/6478633.html
Copyright © 2011-2022 走看看