`

js、URL传递含有中文参数时的乱码问题解决

阅读更多
1、使用代码完成字符集修改

方法(一):
html页面:

function testOne() {

   var url =  "testOne_test.do?expr="+你好;

   location  = encodeURI(url);

}

后台java代码:

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

方法(二):

html页面:

function testOne() {
   var url =  "testOne_test.do?expr="+你好;
   location = encodeURI(encodeURI(url));
}

后台java代码:
String expr = java.net.URLDecoder.decode(lrequest.getParameter("expr") , "UTF-8");
2、修改tomcat中的配置参数

在tomcat下面找到server.xml
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" URIEncoding="GBK">
根据需要修改为UTF-8等字符集。
3、在web工程中添加spring.jar,使用spring的CharacterEncodingFilter

view plaincopy to clipboardprint?

    <filter> 
     <filter-name>encoding</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>encoding</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 



org.springframework.web.filter.CharacterEncodingFilter 中的转码部分:

view plaincopy to clipboardprint?

    protected void doFilterInternal( 
      HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) 
      throws ServletException, IOException { 
     
     if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) { 
      request.setCharacterEncoding(this.encoding); 
      if (this.forceEncoding && responseSetCharacterEncodingAvailable) { 
       response.setCharacterEncoding(this.encoding); 
      } 
     } 
     filterChain.doFilter(request, response); 
    } 

参考:
url:http://blog.163.com/wkyuyang_001/blog/static/108021228200971352434158/

Spring源文件
分享到:
评论

相关推荐

    jquery获取URL中参数解决中文乱码问题的两种方法

    当我们需要在两个页面间通过URL传递参数时,经常会遇到中文乱码问题。这个问题主要是因为URL中的参数可能没有经过正确的编码和解码处理。为了解决这个问题,我们可以采取一些方法,特别是当使用jQuery来获取URL参数...

    解决JS传递中文乱码问题

    本文将深入探讨如何解决JavaScript(简称JS)在传递中文字符时出现的乱码问题,并提供具体的解决方案。 #### 一、问题背景 在Web应用中,前端页面与后端服务之间通过HTTP请求进行数据交互是非常常见的操作。当这些...

    asp.net页面通过URL参数传值中文乱码问题解决办法

    例如,通过JavaScript调用Web服务传递中文参数时,仅配置Web.config可能不足以解决问题,需要在代码中处理编码。 另外,如果从其他已正确处理编码的页面获取中文参数,可以直接使用`System.Web.HttpUtility....

    ajax传递中文参数乱码解决办法

    通过以上方法,我们可以有效地解决AJAX传递中文参数时可能出现的乱码问题。关键是在发送端进行编码,在接收端进行相应的解码处理。同时,保持前后端以及数据库字符集的一致性也是很重要的。掌握了这些技巧后,开发者...

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    URL传中文参数导致乱码的解决方案之encodeURI

    然而,当URL需要传递包含中文字符的参数时,由于不同系统和环境的编码差异,可能会导致中文参数在传输过程中出现乱码。为了解决这个问题,我们可以利用JavaScript中的`encodeURI`函数来对中文参数进行编码,然后在...

    Java Http请求传json数据乱码问题的解决

    在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...

    GET方法URL中传递中文参数乱码的解决方法

    然而,当我们在GET请求的URL中直接传递包含中文字符的参数时,可能会遇到乱码问题。这是因为不同系统、浏览器和服务器对字符编码的支持不一致,导致在传输过程中中文字符无法正确解析。以下是对这个问题的深入探讨和...

    从js向Action传中文参数出现乱码问题的解决方法.docx

    在开发Web应用时,经常会遇到跨语言环境的数据传输问题,特别是在JavaScript(JS)与服务器端Action之间传递包含中文字符的参数时,乱码问题尤为常见。这个问题主要源于字符编码的不同处理,导致数据在传输过程中...

    奇数个中文字符url传递乱码

    为了解决奇数个中文字符URL传递乱码的问题,可以采用JavaScript来实现正确的编码处理。具体步骤如下: 1. **获取原始URL**:首先获取用户输入或系统生成的原始URL。 2. **编码处理**: - 使用`encodeURI()`函数...

    Ajax中文乱码问题解决方案

    3. **正确使用JavaScript编码函数**:在传递中文字符时,使用`encodeURIComponent()`函数进行编码,它会将所有非字母数字字符转换为UTF-8序列。在接收响应数据时,若数据是JSON格式,JSON.parse()会自动处理编码问题...

    AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题

    综上所述,解决AJAX技术使用`XMLHttpRequest`对象传递参数时出现的中文乱码问题,关键在于保持客户端与服务器端的编码一致性。通过合理设置请求头、使用适当的编码和解码函数,可以有效避免此类问题的发生。此外,在...

    .Net获取URL中文参数值的乱码问题解决方法总结

    总结来说,解决.NET中URL中文参数值乱码问题的方法主要包括在web.config中进行全局编码设置、使用Server.UrlEncode和Server.UrlDecode方法编码解码参数、使用JavaScript的escape函数、以及在编程中使用...

    解决url中文乱码.doc

    在Java Web开发中,URL中文乱码问题是一个常见的困扰,主要出现在传递含有中文字符的参数时。本案例中,我们将探讨如何解决这个问题,涉及到的主要知识点包括URL编码、字符集转换以及在Java Servlet、JSP和Struts2...

    javascript通过url向jsp页面传递中文参数导致乱码解决方案

    在Web开发中,使用URL传递参数是一种常见的方式,但在处理中文字符时经常会出现乱码问题。由于HTTP协议本身是基于ASCII字符集,而中文字符不是ASCII字符,所以在URL中的中文字符如果不经过特殊处理就会造成乱码。...

    Web报表FineReport页面如何传递中文参数

    在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致乱码或错误问题。因此,需要对这些中文或特殊字符进行编码转换。 为了解决这个问题,FineReport提供了一个内部封装的编码方法,...

    Url传值乱码解决方案

    在进行Web开发时,我们经常会遇到URL传值乱码的问题,这主要涉及到URL编码与解码的机制。本文将深入探讨URL编码的原因、原理以及如何解决URL传值乱码的常见问题。 URL(统一资源定位符)是互联网上资源的唯一标识,...

    Request.QueryString 乱码问题

    在Web开发中,经常会遇到通过URL传递参数的情况。其中,`Request.QueryString`是ASP.NET中用于获取URL查询字符串(即URL中问号后的部分)的一种常用方法。然而,在处理包含中文字符的数据时,可能会遇到乱码的问题。...

    SqlServer数据库中文乱码问题解决方法

    4. JavaScript中传递URL参数的中文内容需使用`escape`函数。 5. 存储UTF-8编码的中文内容到SQL Server时,字段类型应为`NVARCHAR`,插入时在值前加上`N`,如`INSERT INTO user (name) VALUES (N'&username&')`。 在...

    解决qr_code中文乱码问题

    本教程将详细解释这个问题,并提供一个开源示例帮助你理解和解决中文乱码问题。 首先,我们需要了解二维码编码的基本原理。QR Code是一种二维条形码,能够存储大量的文本、数字、URL等信息。它使用了40个不同的版本...

Global site tag (gtag.js) - Google Analytics