• 中文乱码解决方案


     
     

    1.利用String[也是最常用的方式]

    String username = new String(username.getBytes("ISO-8859-1"), "UTF-8"); //通过默认的编码获取到byte[],然后进行UTF-8再次编码  

    2.在tomcat中的server.xml进行配置URIEncoding="UTF-8"

    <Connector 
    URIEncoding="UTF-8"
    port="8080"
    protocol="HTTP/1.1"   
    connectionTimeout="20000" redirectPort="8443" />

    3.使用JavaScript对传递的参数进行编码

    额外阅读

    复制代码
    Js编码的几种方式区别:
    
    1.window.escape()与HttpUtility.UrlEncodeUnicode()编码格式一样:将一个汉字编码为%uxxxx格式
    不会被window.escape编码的字符有:@ _ - . * / +  这与http://www.w3school.com.cn/js/jsref_escape.asp上的解释不符合
    
     
    
    2.window.encodeURIComponent()[我推荐使用这种方式]与HttpUtility.UrlEncode()编码格式一样:将一个汉字编码为%xx%xx%xx的格式
    
    不会被window.encodeURIComponent编码的字符有:'  (  )  *  -  . _   ! ~   这与http://www.w3school.com.cn/js/jsref_encodeURIComponent.asp解释相符合
    
    不会被HttpUtility.UrlEncode编码的字符有:'  (  )  *  -  .  _  ! 相比较而言,HttpUtility.UrlEncode比window.encodeURIComponent多一个 ~ 编码
    
     
    
    3.不会被window.encodeURI编码的字符有: -  _  .  !  * (  )  ;  /  ?  :  @  &  =  ,  #,与encodeURIComponent对比,发现encodeURI不对:;/?:@&=+,  #,与encodeURIComponent对比,发现encodeURI不对:;/?:@&=+,#这些用于分隔 URI 组件的标点符号进行编码
    复制代码
    复制代码
    事例演示说明
    JavaScript代码: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext)); java后台处理代码: searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8"); /* 为什么要两次编码的原因:后台java代码给searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。
    所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,
    然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");进行一次解码就好了。
    【这种方式还是用的比较多的,我个人使用的比较少】 */
    复制代码
  • 相关阅读:
    npm 升级所有依赖包
    React中使用 ref 和 findDomNode
    流程控制语句
    Linux 各大目录详解 及 目录颜色详解
    python语言初识(红桃三)
    Linux 虚拟机安装及网络配置
    linux系统介绍
    计算机的五大部件
    Vue生命周期
    Vue实现模糊搜索
  • 原文地址:https://www.cnblogs.com/smallfa/p/10640602.html
Copyright © 2020-2023  润新知