zoukankan      html  css  js  c++  java
  • 解决几种中文乱码的问题

    BootStrap table 搜索中文乱码问题

    1.bootstrapTable在请求方式为get时,在其提供的输入框中输入中文,会出现后台获取到的是乱码的字符的现象。

    有两种方式解决这个问题:可以在Tomcat上更改URL 的编码方式:

    进入Tomcat目录,进入conf文件夹,打开server.xml文件(最好先进行一次备份),找到自己请求的连接头对应的代码:

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
    

     在其中加上URIEncoding="UTF-8"属性.

    2.因为请求方式为get,所以出现这个问题,可以在其属性里面,把method改为post,同时,还要加上contentType:"application/x-www-form-urlencoded":更改如下:

    $("#table").bootstrapTable({
              method: "post",
              url: "获取后台数据的url",
              contentType:"application/x-www-form-urlencoded",
              ... ...
    });
    

    2.bootstrap里面的请求方式为get,出现中文乱码的问题,

    一个是修改tomcat配置文件conf/server.xml,  <Connector port="8082" protocol="HTTP/1.1"  中加入  URIEncoding="utf-8"的编码集;

    另一个是前台对中文进行编码时,可以在js里面调用encodeURI(url),将url编码,然后请求。

    后台这样写:String str = new String(request.getParameter("param").getBytes("iso8859-1"),"UTF-8"); 在框架的使用中:request.setCharacterEncoding(encoding);只对post请求有效。所以spring的filter配置不作用于get参数接收。

    3.后台接受中文参数乱码处理的方法(搜索功能带参数)

    encodeURI(encodeURI(params)):

    两次encodeURI的原理:

    第一次编码得到的是UTF-8形式的URL,第二次编码得到的依然是UTF-8形式的URL,但是在效果上相当于首先进行了一 次UTF-8编码

    再进行了一次iso-8859-1编码,因为对英文字符来说UTF-8编码和ISO- 8859-1编码的效果相同。

    后台处理的话,是这样的,先获取到搜索的参数,然后我们判断一下,这个参数是否为空,  !StringUtil.isempty(参数)是否为空,接着进行的是:

    params = urldecode .decode(params,"utf-8");
    
  • 相关阅读:
    codevs 1086 栈 2003年NOIP全国联赛普及组
    1200 同余方程 2012年NOIP全国联赛提高组
    【bzoj4939】【YNOI2016】掉进兔子洞(莫队)
    洛谷P3674 小清新人渣的本愿(莫队)
    Lucas卢卡斯定理
    组合数学习笔记
    洛谷P3178 [HAOI2015]树上操作(线段树)
    洛谷P3258 [JLOI2014]松鼠的新家(树上差分+树剖)
    洛谷P2526 [SHOI2001]小狗散步(二分图匹配)
    bzoj3140: [Hnoi2013]消毒(二分图)
  • 原文地址:https://www.cnblogs.com/zuo72/p/8909347.html
Copyright © 2011-2022 走看看