精华内容
下载资源
问答
  • 解决post中文乱码问题2.解决get请求中文参数乱码 1.解决post中文乱码问题 添加一个spring提供的过滤器 , 将编码设置为utf-8 在web.xml中加入以下配置信息: <filter> &...

    1.解决post中文乱码问题

    添加一个spring提供的过滤器 , 将编码设置为utf-8
    在web.xml中加入以下配置信息:

    <filter>
    	<filter-name>encoding</filter-name>
    	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    	<!-- 设置编码参是UTF8 -->
    	<init-param>
    		<param-name>encoding</param-name>
    		<param-value>UTF-8</param-value>
    	</init-param>
    </filter>
    <filter-mapping>
    	<filter-name>encoding</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>
    
    

    配置好以后就可以解决post请求时出现的乱码问题
    另外补充一下:
    post 方式解决乱码是在web.xml里边添加的filter , 添加以后需要重启一下项目才会生效.

    2.解决get请求中文参数乱码

    1. 第一种解决办法直接修改编码方式:
      以tomcat为例子: 修改tomcat配置文件server.xml (就是修改端口的位置)
      添加前如下:
        <Connector
        		port="8080" 
        		protocol="HTTP/1.1"
        		connectionTimeout="20000"
        		redirectPort="8443" />
    

    添加编码信息后如下:

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

    就是多加了一个编码的配置:URIEncoding="utf-8"

    1. 第二种,先解码再编码
      这种方式对服务器来说并没有改变编码的方式. 比如前台传递过来的是iso-8859(不支持中文)编码, 这里我们或取得仍然是iso-8859的编码. (第一种方式获取的直接就是utf-8编码)
      原理过程:
      1). 解码
      具体做法就是我们先用iso-8859来对参数信息进行解码, 解码其实也就是把iso-8859的编码还原成之前的原始的二进制字节码
      2).编码
      通过上步得到的二进制的字节码我们可以将他使用任何一种方式进行重新编码, 例如我们需要utf-8 的格式, 这时候再讲二进制码按utf8的编码格式进行转换一下即可.
      以get请求参数userName为例:
    String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
    

    以上就是将userName以iso解码,然后再以utf8编码.

    展开全文
  • springMVC如何解决post乱码问题?springMVC如何解决get乱码问题

    一、解决post请求中文乱码问题:

    在web.xml文件中配置一个过滤器

     <filter>
    
            <description>字符编码过滤器</description>
    
            <filter-name>encodingFilter</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>
    
            <init-param>
    
                <param-name>forceEncoding</param-name>
    
                <param-value>true</param-value>
    
            </init-param>
    
        </filter>
    
        <filter-mapping>
    
            <filter-name>encodingFilter</filter-name>
    
            <url-pattern>/*</url-pattern>
    
        </filter-mapping>

    二、解决get请求中文乱码问题:

    Tomcat8.0以上版本里get请求不会出现乱码

    Tomcat7.0版本:

    方法一:在方法中修改字符编码(不推荐)

    这个方法可以将get请求提交给后台的参数改为utf-8编码,但是响应回页面的编码还是ISO8859-1,所以响应回页面的还是乱码。

    方法二:修改tomcat配置文件(推荐)

    注意是URIEncoding不是URLEncoding。

    这样,不但把后端接收前端请求参数的字符编码改了,而且还改了后端响应给前端的参数编码。

    展开全文
  • springMVC解决GETPOST乱码

    千次阅读 2017-10-27 15:43:46
    springMVC解决POST乱码在web.xml中配置一个编码过滤器即可解决,而解决GET乱码需要在服务器端配置。1,解决POST乱码web.xml <filter-name>CharacterEncodingFilter <filter-class>org.springframework.web.filter....

    springMVC解决POST乱码在web.xml中配置一个编码过滤器即可解决,而解决GET乱码需要在服务器端配置或者对参数重新编码。

    1,解决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>

    2,解决GET乱码

    对于get请求中文参数出现乱码解决方法有两个:
    
    (1)、就tomcat举例,修改tomcat配置文件添加编码与工程编码一致,如下:
    
    <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    (2)、另外一种方法对参数进行重新编码:
    String userName new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
    ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码
    展开全文
  • 解决 Get Post 客户端,get请求URL传中文参数等乱码问题 说来说去还是先写一些最基本又是最常见的疑难杂症,针对于基础薄弱的同学,这些东西还是需要注意的,以后写接口,封装工具,文件上传下载等过程中,发布...

    解决 Get 和 Post 和客户端,get请求URL传中文参数等乱码问题

    说来说去还是先写一些最基本又是最常见的疑难杂症,针对于基础薄弱的同学,这些东西还是需要注意的,以后写接口,封装工具,文件上传下载等过程中,发布到服务器上出现类似的中文乱码问题,都是一些小问题但是有时容易忽略的问题。今天就提出来单独说说。

    废话不多说,直接开始。

    一. get方式的请求中文乱码

    在一般的web开发过程中,提交方式有get、post最为常用。
    针对于get方式出现中文乱码,

    1.get请求实例

    1. 前台发出get请求:

    比如html/jsp等前台发送一个get请求的表单数据:不管你是form提交还是ajax提交,反正只要是get请求。

    <form action="UploadServlet" method="get" >
            用户名:<input name="username" type="text" /><br/>
            密 码:<input name="password" type="password" /><br/>
            <input type="submit" />
    </form>
    
    1. 后台获取表单内容代码:
    String username =request.getParameter("username") ;
    String password =request.getParameter("password");
    System.out.println("---get:"+username+" "+password);
    

    图:
    在这里插入图片描述

    1. 控制台打印乱码内容:
      不管是???类型是乱码,还是caerdsada之类的乱码,反正就是你确定中文乱码了。
      图:
      在这里插入图片描述

    2.get方式乱码分析:

    发送get请求的时候,首先页面会进行UTF-8编码,然后传送的时候http又对页面进行ISO-8859-1编码,而传输中实际上还有一个针对于url的编码。

    然后服务器拿到数据以后,首先会针对于url编码自动解码,但是http中的ISO-8859-1没进行解码,还有页面的utf8也没有解码。所以出现乱码现象。

    总之get请求,经历过三次编码—页面的声明编码,https传送编码,url编码。而其中,url的编码服务器是会自动解码的。(URL是针对那种get请求后面携带中文参数发给服务器,比如下载功能、预览功能。)

    get参数发送的时候,http进行传输编码图:
    在这里插入图片描述

    get请求的URL携带中文参数的编码分析(文件下载):
    在这里插入图片描述

    还有一个针对于表单get请求形式的编码分析:
    在这里插入图片描述

    总而言之,就是需要对get请求在后台做两次解码处理,也就是把得到的乱码按照原来乱码的步骤逆序操作。

    3. 解决get乱码的两种方式:

    对get请求在后台做两次解码处理:

    1、先以iso-8895-1进行解码

    2、然后再以utf-8进行解码

    第一种:

    使用URLEncoder 和 URLDecoder 两个类 编解码。

    比如:

     	//获取客户端传递过来的用户名参数值
        String username = request.getParameter("username");
        System.out.println("用户名:" + username);
    
        // 先对用户名进行解码得到%E7%8E%8B%E6%8C%AF%E5%9B%BD 这样的形式
        username = URLEncoder.encode(username, "ISO-8859-1");
    
        // 再进行utf-8编码 一次得到页面上输入的文本内容
        username = URLDecoder.decode(username, "UTF-8");
        System.out.println("乱码解决后用户名:" + username);
    

    第二种:

    使用 String类的方法进行两次编解码。

    比如:

    String username = request.getParameter("username");
    username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
    System.out.println("乱码解决后用户名:" + username);
    

    图示:在这里插入图片描述

    另外:
    针对于get请求中,URL携带中文参数后台接收乱码的解决。
    这是针对于比如文件下载等功能经常出现的。

    现在需求是在浏览器里面直接发请求,浏览器发请求,默认发的是get请求,然后带参数,参数包含中文汉字。麻烦就在这里,参数里面的汉字,在后台接收的时候,是乱码。

    比如:下载某个文件。
    在这里插入图片描述

    或者是这样的:
    在这里插入图片描述

    这个就是简单的在URL里面带中文汉字参数,然后,就在后台乱码。

    解决:

    filePath = new String(filePath.getBytes("ISO-8859-1"), "utf-8");
    

    但是,要出现坑,关于特殊字符,虽然也是经过了2次解码,但是,到后台之后,发现,还是出现了部分偏差。

    这种情况:
    在自己的tomcat安装目录的下的\conf下,修改tomcat的配置文件server.xml:

    需增加 URIEncoding=“UTF-8” 这一句,然后重启tomcat即可。

    <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443" uriencoding="UTF-8">  
    connector>
    

    最后还是推荐传参使用英文或者字符串,中文还是少用。

    二.POST请求中文参数值乱码

    针对于post请求的乱码就轻松得多,总所周知,数据存储在请求体里面,不需要在编码了,而是字节流形式存储。

    前台页面请求采用post请求。

    2.乱码原因分析:

    因为post是以二进制流的形式发送到的服务器。

    服务器收到数据后,默认以iso-8859-1进行编码。

    3.post乱码解决:

    首先要在jsp/html页面声明utf8编码:
    在这里插入图片描述

    然后告诉服务器在获取请求参数之前以utf-8来解码即可。

    request.setCharacterEncoding(“UTF-8”); 方法设置字符集即可。

    在这里插入图片描述

    这样post就完成对应解码,也就中文不会出现乱码了。


    三、后台输出中文到前台浏览器端的乱码

    上面都是说的从客户端-也就是浏览器前台发送请求给服务器后台导致的乱码情况。下面说说反过来,由后台发送给前台的中文乱码情况。

    1.输出字符串内容到客户端

    后台往客户端输出,一般分两个步骤:

    第一步:先获取输出流(二进制返回用获取字节流,字符出获取字符流)

    第二步:调用输出流对象,写出数据第客户端。
    比如后台这么写:

    // 通过response响应对象获取到字符输出流
        Writer writer = response.getWriter();
    // 往 客户 端 输出数据。
        writer.write("this is response content!");    
    // 输出中文数据到客户端
         writer.write("这是中文的输出");
    

    通过浏览器访问后显示的结果:
    在这里插入图片描述

    2.乱码原因分析:

    主要是因为服务器输出的字符串的编码和客户端显示字符串的编码不一致。导致乱码问题。
    所以我们只需要设置服务器和客户端的编码相同就可以解决这个问题。

    3.乱码的解决:

    设置服务器的字符串编码

     //设置服务器输出的编码为UTF-8
        response.setCharacterEncoding("UTF-8");
    

    设置客户端的字符串显示编码。

    //告诉浏览器输出的内容是html,并且以utf-8的编码来查看这个内容。
        response.setContentType("text/html;charset=utf-8");
    

    注意:这两行语句要在获取输出流之前执行。才会生效

    效果代码:

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
    
        //设置服务器输出的编码为UTF-8
        response.setCharacterEncoding("UTF-8");
    
        //告诉浏览器输出的内容是html,并且以utf-8的编码来查看这个内容。
        response.setContentType("text/html; charset=utf-8");
    
        // 通过response响应对象获取到字符输出流
        Writer writer = response.getWriter();
        // 往 客户 端 输出数据。
        // writer.write("this is response content!");
    
        // 输出中文数据到客户端
         writer.write("这是中文的输出");
    }
    

    图示:
    在这里插入图片描述


    以上就是整个解决 Get 和 Post 和客户端,get请求URL传中文参数等乱码问题,不管是前台向后台请求,还是后台向前台反馈,不管是post、get、还是URL+get都可以通过上述的方式一一对应界面中文的乱码问题。 希望对大家有帮助。
    You got a dream, you gotta protect it.

    如果你有梦想的话,就要去捍卫它 。 ——《当幸福来敲门》

    展开全文
  • 下面小编就为大家带来一篇完美解决Get和Post请求中文乱码问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 对于Post请求,只需在Servlet或者jsp中写入如下代码就可以把解决...
  • post请求乱码 解决办法:在取参数之前设置编码格式 get请求乱码 Tomcat8以后不需要处理GET请求,默认是UTF-8编码!!! 乱码案例 一个简单的登录共能,将表单中的账号密码提交给Servlet &lt;!DOCTYPE ...
  • 文章目录1、POST乱码1.1、在web.xml中配置1.2、具体的处理方式2、GET乱码2.1、在tomcat服务器中添加编码3、使用一个万能的配置类(解决POST和GET) 1、POST乱码 1.1、在web.xml中配置 SpringMVC中,其为我们提供了...
  • 解决Get和post请求中中文乱码问题

    千次阅读 2016-07-19 11:19:41
    1.对于Post请求,只需在Servlet或者jsp中写入如下代码就可以把解决从表单中传入的中文乱码问题  request.setCharacterEncoding("utf-8");  String str=request.getParameter("name");  byte[] bytes=str....
  • 解决POSTGET返回值乱码问题

    千次阅读 2018-09-25 21:53:11
    -- 解决post乱码问题 --&gt; &lt;filter&gt; &lt;filter-name&gt;encoding&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter.CharacterEncod...
  • 解决Get和Post请求中中文乱码问题

    千次阅读 2016-03-23 09:33:43
    对于Post请求,只需在Servlet或者jsp中写入如下代码就可以把解决从表单中传入的中文乱码问题  request.setCharacterEncoding("utf-8"); 而对于Get请求,因为请求参数会被附加到地址栏的URL之后,所以不能用...
  • 1、post中文乱码: a、获取参数乱码: 方法1、利用string方法对指定字符集进行转换,Tomcat默认使用iso-8859-1编码,修改为utf-8编码,例如在doPost方法中做如下修改: String name = request.getParameter(...
  • struts2默认能解决get和post提交方式的乱码问题吗? @sunRainAmazing不能。 struts.i18n.encoding = UTF-8 属性值只能解析POST提交下的乱码问题
  • getpost乱码问题

    2017-07-27 16:37:20
    我使用ajax的get方法进行对数据库发送sql,但有中文乱码,换了post乱码就没有了。 我想问一下,为什么使用get会乱码,而使用post不会乱码
  • 在很多情况下get请求会发生中文乱码的情况,而换做post就不会,这其中的根本原因是get请求默认的是使用“iso-8859-1”编码,接下来介绍两种种解决get请求编码的方法 1.自定义一个工具类 个人认为这个是最好的解决...
  • 解决http的post请求乱码问题 首先在struts.xml中增加如下项: &lt;constant name=" struts.locale" value="UTF-8"&gt;&lt;/constant&gt; 解决http的get请求乱码问题 打开...
  • 3.1 post乱码添加过滤器 在web.xml添加post乱码filter 在web.xml中加入: filter> filter-name>CharacterEncodingFilterfilter-name> filter-class>org.springframework.web.filter.CharacterEncodingFilterfilt
  • 本分享主要目的是解决请求的中文乱码问题1、通用get请求乱码问题针对Get方式的乱码问题,由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:例如...
  • postget处理中文乱码问题

    千次阅读 2017-10-11 15:25:47
    java中postget处理中文乱码问题
  • GETPOST乱码问题解决

    万次阅读 2016-12-16 20:33:03
    Tomcat的默认编码是iso-8859-1...POST乱码: 在web.xml中配置乱码过滤器 CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 CharacterEnc
  • 在通过servlet从表单或者页面提取内容... 1.post方法乱码问题。  解决方法:在取第一个参数之前,通过语句request.setCharacterEncoding("GBK");来设定,注意,不能设置成response.setCharacterEncoding("GBK");,设
  • 前言 无论是提交表单,还是利用URL穿参时,只要参数中有中文,若果在程序中...在web.xml中配置Sping的CharacterEncodingFilter,这是个过滤器,可以解决post请求乱码问题。 filter> filter-name>CharacterEncodin
  • 2.配置过滤器:解决POST请求中文乱码 get请求: Tomcat8已经解决GET中文乱码; Tomcat7需要自己解决乱码的字符串name进行转换,String name = request.getPrameter(“name”); 转换后:name = new Stri...
  • SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理解决POST请求中文乱码问题解决GET请求中文乱码问题 解决POST请求中文乱码问题 修改项目中web.xml文件 <filter> <filter-name>...
  • Servlet中文乱码原因 解决 Get Post 客户端

    万次阅读 多人点赞 2016-10-26 23:14:06
    一、Get方式的中文乱码1) 使用如下页面表单内容: <form action="http://127.0.0.1:8080/day07/params" method="get"> 用户名:<input name="username" type="text" /><br/> 密 码:...
  • sessiontest1.html页面有一个form表单,常用的表单提交方式有get()请求和post()请求方式。下面来看一下jsp中两种请求方式的中文乱码问题解决办法。(我所有页面的编码都设置成了gb2312) (1)get()请求方式的...
  • 如果表单中含有中文,采用GET或者POST提交请求时,getParameter()方法接收到的参数值乱码。1、乱码产生的原因 请求参数通过浏览器发送给Tomcat服务器,浏览器发送编码,但是tomcat默认采用ISO-8859-1编码进行处理,...
  • 1.post请求方式乱码解决。request.setCharacterEncoding("UTF-8");2。get请求方式乱码解决。String name = reuqest.getParameter("name"); 拿到原始的二进制数据,用UTF-8进行...
  • 解决乱码和产生乱码的方式和原因都一致。 乱码情况.容器编码和jsp页面编码不一致造成 分析原因摘自网络: 浏览器根据页面的charset编码方式对页面进行编码,然后提交至服务器,首先进入对应的字符编码...
  • Get请求,Post请求乱码问题解决方案

    万次阅读 2015-09-07 00:41:24
    之所以出现乱码,主要是由于编码解码采用的方法不同。 因此保证编码解码格式一致是避免乱码发生的重要前提。 ... 自从Tomcat5.x以来,Get方式和Post方式提交的请求,tomcat会采用不同的方式来

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,230
精华内容 24,092
关键字:

如何解决get和post乱码问题