首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的。

一,get请求参数中文乱码的解决办法

对于get请求解决中文乱码有两种途径

一种是修改tomcat默认的编码方式为"UTF-8"

在tomcat的server.xml里把

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

修改为

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

另一种则是代码层次解决中文乱码,该方式需要前端与后台都要做相应编码

来自页面的一个get请求:

window.location.href = getContextPath()+"/manage/user/detail?name="+encodeURI(encodeURI("小明"));

服务器端:

String name = request.getParameter("name");
orgname = URLDecoder.decode(name,"UTF-8");

因为get请求的参数在请求行上,我们不能像解决post请求那样使用 request.setCharacterEncoding("UTF-8");这种方式是修改方法体的编码方式。

所以只能使用以上的方式分别对请求行的汉字进行编码和解码。其实解决get请求中文乱码问题最好的方式是避免使用中文,若带有中文参数尽量使用post请求进行传递。

二,post请求参数中文乱码的解决办法

  对于post请求,请求中问乱码的两种解决办法,就喜闻乐见了。一般也不会有post请求参数中文乱码吧,任何一个java的web项目应该都配置了字符集过滤器。

  (1): request.setCharacterEncoding("UTF-8");

  (2):

     <filter>
        <description>字符集过滤器</description>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
          <description>字符集编码</description>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
     </filter>
     <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>

get请求与post请求中文乱码问题的解决办法的更多相关文章

  1. eclipse中js中文乱码问题的解决办法

    在Eclipse中编辑JS文件简直是一种折磨,但是却总是很无奈得要去适应. 这里说一下Eclipse中,编辑JS文件时候,出现中文乱码问题的解决办法. 这个问题很容易想到是文件编码的问题,因此通常是修 ...

  2. Pycharm 输出中文或打印中文乱码现象的解决办法

    1. 确保文件开头加上以下代码: # -*- coding:utf-8 -*- 还可以加上 import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  3. get/post时中文乱码问题的解决办法

    1.文章1 最近遇到一个问题:用get方法传递中文有问题,用post没有问题. 问题简单的描述是这样的: <a href="userGroup.jsp?userGroupName=&l ...

  4. web 前端:连接mysql中文乱码问题的解决办法

    当使用tomcat部署servlet连接时,总是出现各种原因的中文乱码问题.有的是因为mysql的默认字符集的问题,有的是客户端的字符配置问题. 现在对于这两种问题进行配置,来解决乱码. 服务器端(m ...

  5. Linux系统中关于Sqlite3中文乱码问题及解决办法

    新做的一个项目在本地(Win8)测试时没有问题,但传到服务器(Linux)时从Sqlite3数据库查询到的数据中文却是乱码(数据库中是正常的) 将php文件.html文件都设置成统一的utf8还是一样 ...

  6. centos 7 网站前端中文乱码分析、解决办法

    2019-03-28 1.网站前端中文文字乱码主要原因有两点: (1)mysql数据库内部存储的数据本身处于乱码状态 (2)前端与数据库传输数据的字符集与数据库内部字符集不一致导致 2.查找造成中文乱 ...

  7. 远程工具(SSH Secure)连接Centos出现中文乱码问题的解决办法

    问题原因 使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK.所以解决方案是统一两者编码就OK了,但是 ...

  8. codeblocks中文乱码原因及解决办法

    原因:(本地化做得不够好)默认情况下codeblocks编辑器保存源文件是保存为windows本地编码,就是WINDOWS-936字符集,即GBK:但CB的编辑器在默认编辑的时候是按照UTF-8来解析 ...

  9. IDEA2019 Win10 Tomcat Server控制台中文乱码的快速解决办法

    原理 Windows10的控制台使用GBK编码,而Tomcat使用UTF-8编码,导致乱码 解决办法 修改$tomcat/conf/logging.properties文件 # 注释这行 java.u ...

随机推荐

  1. C指针右左法则

    摘录的别人的:  C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出 ...

  2. jsp连接mysql案例

    下载mysql-connector-java-5.1.26 将mysql-connector-java-5.1.26-bin.jar放在\jdk\jre\lib\ext中 -------------- ...

  3. WeChall_Training: Get Sourced (Training)

    The solution is hidden in this page Use View Sourcecode to get it 解题: 网页源码,最后一行 <!-- You are look ...

  4. HDU_2571_DP

    http://acm.hdu.edu.cn/showproblem.php?pid=2571 简单dp,从上到下,从左到右依次更新每一格的最大幸运值. #include<iostream> ...

  5. python中调用函数时,参数顺序与参数赋值问题

    设置类和函数如下:class MM(): def ff(self,url(1),method(2),data=None(3),cookie=None(4)): if method.lower()==& ...

  6. django项目中使用KindEditor富文本编辑器

    先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindedi ...

  7. WLAN802.11

    IEEE 802.11,1997年,原始标准(2Mbit/s,播在2.4GHz).DSSS, FHSS.该协议的一大缺点是它提供了太多的选择使得互操作性很难实现.所以它不严密,更像是一个beta标准, ...

  8. docker 修改 bridge网桥网段

    首先停止正在使用的 Docker 服务: $ sudo service docker stop 接着删除 Docker 默认网桥 docker0 : $ sudo ip link set dev do ...

  9. Apache的那些事-查找配置文件

    在CentOS 6.5 里Apache的 安装后出现两个httpd.conf配置文件,一个在          /etc/httpd/conf/httpd.conf             这个事li ...

  10. centos6.x下使用xinetd管理rsync服务

    系统环境说明:centos6.x,centos7.x下rsync直接可由systemd管理(无需使用xinetd). [root@meinv01 ~]# rpm -qa|grep xinetd [ro ...