项目中get/post请求中文乱码的解决方案

一.解决get请求中文乱码的方案:

方案(推荐)1:

一般情况下tomcat(8之前)服务器的编码默认是ISO8859-1,所以要对get请求提交的参数进行重新编码:

  •   String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8");

方案(不推荐)2:

既然知道了tomcat服务器的编码默认是ISO8859-1,那么可以修改tomcat的编码格式:在Tomact的conf/server.xml中添加URIEncoding="utf-8" ,如下:

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

二.解决post请求中文乱码的方案:

在项目中web.xml配置文件中加入如下配置可以解决中文乱码的问题: 

  •   <filter>
  •     <filter-name>CharacterEncodingFilter</filter-name>
  •     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  •     <init-param>
  •       <param-name>encoding</param-name>
  •       <param-value>utf-8</param-value>
  •     </init-param>
  •   </filter>
  •   <filter-mapping>
  •     <filter-name>CharacterEncodingFilter</filter-name>
  •     <url-pattern>/*</url-pattern>
  •   </filter-mapping>

注意:

此处要注意自己的tomcat服务器的版本,如果版本是8之前的版本,编码默认使用的是ISO8859-1,版本是8之后(包括8)编码默认使用的是utf-8,解决了url提交数据的编码问题;所以

tomcat(8之前的版本):使用如上过滤器(post)+get(转码)即可解决中文乱码的问题;

tomcat(8之后的版本):使用如上过滤器(post)即可解决中文乱码的问题;

原文地址:https://www.cnblogs.com/chang-jiuyue/p/9296625.html

时间: 2024-10-10 08:23:56

项目中get/post请求中文乱码的解决方案的相关文章

RestTemplate发起http请求中文乱码问题解决方案

RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); headers.setContentType(type); headers.add("Accept", MediaType.APPLIC

windows中的txt文件上传到linux中,打开出现中文乱码

问题:在windows中显示正常的文件,上传到linux中,打开出现中文乱码. 解决方案:使用iconv命令 例如:iconv -f gbk -t utf8 shujujiegou.txt > shujujiegou.txt.utf8 原文地址:https://www.cnblogs.com/huangtao1927/p/8660815.html

在Filter中使用动态代理解决请求中文乱码问题

使用动态代理解决请求中文乱码问题 1.增强一个类我们常用的几种解决方案: 1.继承 a) 优点简单 b) 必须有被增强类的实现类 2.装饰者模式 a) 要求:1实现相同的接口.2持有被增强的对象 b) 优点:不必知道被增强的实现是谁 c) 缺点:必须实现所有没被增强方法的原始对象的原样调用 3.动态代理 a) 要求:1实现相同接口,2持有被增强的对象 b) 优点:不必手动实现所有不增强方法的原样调用.对方法进行增强时有类似过滤器的功能. c) 缺点:学习成本高. 代理(Proxy): 一个代理对

【Filter】CharacterEncodingFilter解决JavaWeb项目POST提交造成的中文乱码

import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public cla

在jQuery中Ajax的Post提交中文乱码的解决方案(转)

引言: 在jQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: var regid = $('#oregion').combobox('getValue'); //var sname = $('#sname').val(); var sname = encodeURI($('#sname').val(),"UTF-8"); if(regid!=""&&regid!='undefined'){ $

tomcat get请求中文乱码

tomcat7中,保证get数据采用UTF8编码,在server.xml中进行了如下设置: 加:URIEncoding="UTF-8" <Connector port="8080" maxThreads="150"minSpareThreads="25"maxSpareThreads="75" enableLookups="false"redirectPort="8443

Wildfly8 POST请求中文乱码分析与解决

最近遇到的一个关于POST请求中文乱码的问题,原本应用是在TOMCAT上运行的,切换到Wildfly8后,测试环境是正常的,但生产环境下客户端发出的相同请求在服务端获取到的中文出现了乱码,在经过定位后发现是Wildfly8的一个配置引起的. 问题分析如下: 在HTTP的POST请求中,如果是这种情况 Content-Type: application/x-www-form-urlencoded;charset=utf-8 ,若没有设置charset=utf-8,这时可能会出现请求参数中文乱码的情

Windows下Git Bash中VIM打开文件中文乱码

Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 [email protected] MINGW64 /d/项目GGE/Hard_for_GGE (master)$ cd /etc/ [email protected] MINGW64 /etc$ vi vimrc 步骤二 在打开的vimrc文件开头添加以下代码: set nu set fencs=utf-8,gbk,utf-16,utf-32,ucs-bom 保存并退出vimrc编辑文档. 步骤三 1.退出git

请求中文乱码问题

package com.bjsxt.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.bjsxt.pojo.Us