`
dengyin2000
  • 浏览: 1228560 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

为什么get post会产生乱码?

阅读更多
GET

我们一般会把中文进行utf-8 urlencode,然后拼到url后面。 但是在servlet/jsp中用request.getParameter("kw")拿出来然后在urldecode的话还是乱码。为什么会发生这个问题呢? 原来tomcat默认会用iso-8859-1对字符进行urldecode,所以我们decode后还是乱码。 解决办法为

new String(request.getParameter("kw").getBytes("ISO-8859-1"),"UTF-8") 


或者更改tomcat的server.xml让tomcat用UTF-8 decode。

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


POST

保证你的html是用UTF-8编码的。 在head里面包含

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>


这样浏览器会以meta中指定的字符集对form里面的数据进行编码。这里我们需要在调用request.getParameter("kw")之前调用request.setCharacterEncoding("UTF-8")。看看这个访问的javadoc

引用
    /**
     * Overrides the name of the character encoding used in the body of this
     * request. This method must be called prior to reading request parameters
     * or reading input using getReader().
     *
     * @param env a <code>String</code> containing the name of
     * the chararacter encoding.
     *
     * @throws java.io.UnsupportedEncodingException if this is not a valid encoding
     */


这个可以指定request body的字符集(所以这个方法对于get是没有用的,get的参数不是在request body里面。)。

POST中只要调用request.setCharacterEncoding("UTF-8")然后request.getParameter("kw")就能拿到正确的结果了。

参考:http://wdlisoft.iteye.com/blog/522026
分享到:
评论

相关推荐

    解决了中文乱码的http的get和post请求demo

    首先,我们需要理解中文乱码问题产生的原因。当HTTP请求发送含有中文字符的数据时,如果编码格式不一致或未正确指定,接收端就可能无法正确解码,从而导致乱码。HTTP协议本身并不规定字符编码,而是依赖于Content-...

    Indy10.6和OpenSSL解决D7下GET&POST;乱码下载

    "3,indy10.6D7下Get&Post中文乱码解决.txt"是针对D7环境下Indy10.6 GET和POST请求中文乱码问题的解决方案。这个问题通常由字符编码不一致导致,例如服务器和客户端之间没有统一的编码标准,或者在转换过程中没有...

    解决post get 请求乱码问题

    在 Web 开发中,POST 和 GET 请求可能会出现乱码问题,导致中文参数无法正确传输和解析。今天,我们将讨论如何解决 POST 和 GET 请求乱码问题。 解决 POST 请求乱码问题 在 Spring 框架中,我们可以使用 ...

    Tomcat中Get和Post出现乱码的解决办法

    在 JSP 程序中,当我们使用 GET 或 POST 方法提交中文信息时,可能会出现乱码问题。这是因为 Tomcat 对于 GET 和 POST 方法的编码处理方式不同。对于 POST 方法,Tomcat 会使用 request.setCharacterEncoding 方法...

    get、post请求中文乱码处理方式一

    首先,我们需要了解为什么会出现中文乱码。在HTTP请求中,数据通常是按照ASCII编码进行传输的,而中文字符通常使用UTF-8或其他多字节编码。当接收方没有正确地识别或转换这些编码时,就会出现乱码现象。 1. GET请求...

    post和get提交乱码处理

    本文将深入探讨如何处理POST和GET提交时的乱码问题,以确保网页显示正常,避免出现中文或者其他非ASCII字符的乱码现象。 首先,我们要理解POST和GET的区别。POST请求通常用于向服务器发送大量数据或修改服务器资源...

    解决boa服务器get/post请求中文乱码问题

    本主题聚焦于"boa服务器get/post请求中文乱码问题",并提及了sqlite3数据库处理中文乱码的情况。以下将详细介绍这两个方面的知识点。 1. Boa服务器与HTTP请求中文乱码: Boa服务器是一个轻量级的Web服务器,适用于...

    JSP-GET-POST传递的乱码问题

    然而,在处理中文参数时,尤其是通过GET和POST方法传递时,经常会出现乱码问题。这通常是由于字符编码不一致或者处理不当导致的。以下是对这一问题的详细解析: 首先,我们需要理解字符编码的基本概念。在Web中,...

    URL编码以及GET和POST提交乱码解决方案

    在IT行业中,网络通信是不可或缺的一部分,而URL编码、GET和POST提交以及乱码问题则是开发者经常遇到的技术挑战。本文将深入探讨这些知识点,并提供相应的解决方案。 首先,URL编码是因URL(统一资源定位符)中不能...

    中文乱码过滤器(包括GET和POST)

    2. 请求参数编码问题:GET和POST请求在传递参数时,如果没有正确设置字符编码,中文字符可能会被错误地编码为字节流,导致接收端解码失败。 3. 页面编码设置错误:网页的编码设置如果不正确,展示的中文字符也可能...

    ajax POST 与GET提交的区别

    - **GET**: 在使用GET请求时,如果客户端和服务器端编码不一致,可能会出现乱码问题。 - **POST**: 同样存在乱码问题,可以通过设置Content-Type和服务器端编码来解决。 7. **实现细节**: - **GET**: 参数直接...

    过滤器实现get请求和POST请求的中文乱码问题

    使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。

    get与post乱码过滤器.zip

    这个"get与post乱码过滤器"很可能是一个Servlet Filter,它是Java Servlet API提供的一种机制,可以拦截请求和响应,在它们到达目标Servlet或JSP之前进行预处理,或者在离开服务器之前进行后处理。Filter可以在请求...

    get、post区别

    这通常会导致中文等多字节字符在URL中显示为乱码,尤其是在不同编码格式之间的转换过程中。 - **POST**:虽然也使用URL编码,但其数据位于HTTP消息体中,可以通过设置请求头的`Content-Type`属性来指定字符编码,...

    乱码问题的解决

    如果客户端的编码和服务器端的解码不一致,就会出现乱码。 3. get 方法传参乱码 get 方法传参乱码是由于服务器默认按照 iso-8859-1 进行解码所致。解决方法是修改服务器对 uri 参数的默认值 server.xml 中,设置 ...

    SpringMVC解决GET请求时中文乱码的问题.rar

    如果服务器端期望的是UTF-8编码,就会产生乱码。 二、解决策略 1. 修改DispatcherServlet配置:Spring MVC的前端控制器DispatcherServlet在解析请求参数时,可以通过配置`characterEncodingFilter`来设置请求的...

    服务器端测试GET、POST

    GET和POST主要用于客户端(如Android前端)与服务器之间的通信,而处理中文乱码问题则是一个额外的技术挑战。 GET方法是HTTP中最基础的请求类型,通常用于获取服务器上的资源。它将参数附加到URL中,以问号(?)...

    get post提交表单中文乱码过滤器(java)

    get post提交表单中文乱码过滤器(java)

    java乱码综合解决方法(不区分get和post)

    GET和POST请求的参数可能携带非ASCII字符,如果编码不一致,就会导致乱码。解决方法是确保服务器和客户端对请求参数的编码和解码使用相同的字符集。 2. **文件读写**:Java在读取或写入文件时,如果没有指定正确的...

    ajax get请求中文参数乱码解决

    在进行Web开发时,我们经常会遇到Ajax GET请求发送中文参数时出现乱码的问题。这个问题主要源于HTTP协议在处理非ASCII字符时的编码不一致。在本文中,我们将深入探讨这个问题,以及如何通过不同的方法来解决它。 ...

Global site tag (gtag.js) - Google Analytics