`
9708989
  • 浏览: 50496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Url传递参数和接收参数时的中文乱码处理

    博客分类:
  • java
阅读更多

今天一个朋友又问及url传递中文参数,jsp接收参数时的乱码处理问题。

 

一、问题如下:

 Js提交代代码:

Var  name = "老罗";

var url = "testList.jsp?userName="+name;

Jsp中接收参数代码:

String userName = request.getParameter("userName");

得到的userName结果成了“?

二、我给他的解决办法如下:

 Js提交代代码:

Var  name = "老罗";

var url = "testList.jsp?userName="+name;

   url=encodeURI(url); 

   url=encodeURI(url); 

Jsp中接收参数代码:

String  userName = request.getParameter("userName");

   userName = java.net.URLDecoder.decode(userName ,"UTF-8");   

得到的userName结果:“老罗”

 

在这里,为什么要在客户端对字符串重复编码两次呢?
    因为第一次编码,参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。 

再编一次后,提交,接收时容器自动解一次
       然后,再在程序中实现一次 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的参数的原值。

 

其实,一般情况下,  
   encodeURI使用的是 UTF-8 编码规则来编的.
如果 request.getParameter(paramName) ,容器也按 UTF-8 解的话,是正确的根本无须在客户端进行二次的 encodeURI(...)


如果 request.getParameter(paramName),容器没有按 UTF-8 解的话结果只有一个,就是乱码!
容器按什么编码来解码,决定于 request.setCharacterEncoding(***) 或者 服务器程序配置.

在 jsp 程序中,能够 request.setCharacterEncoding("UTF-8"), 并且 修改服务器配置,让容器在解 GET 提交的参数时,使用 UTF-8.
客户端提交前不用二次编码接收时,也只要直接 request.getParameter(paramName) 即可。
<!--EndFragment-->

分享到:
评论

相关推荐

    asp.net中URL参数传值中文乱码的三种解决办法

    在ASP.NET开发过程中,我们时常会遇到URL参数传递中文字符时出现乱码的问题。这个问题主要源于字符编码不一致导致的,下面将详细讲解三种解决这个问题的方法。 ### 方法一:设置Web.config配置 在ASP.NET应用的`...

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

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

    URL传参数时中文乱码解决方法

    在IT领域,尤其是在Web开发中,处理URL传递参数时遇到中文乱码是一个常见的问题,尤其当数据需要跨系统或在不同编码环境下传输时更为显著。本文将深入探讨URL传参数时中文乱码的原因、影响以及如何有效解决这一问题...

    url地址传参中文乱码处理

    URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给服务器时,可能出现乱码的情况。这种情况可能是由于编码问题或Tomcat服务器的配置问题引起的。 在处理URL地址传参中文乱码时,通常有三种解决方案: ...

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

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

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

    在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的问题:即通过Ajax发送带有中文字符的数据时,后端接收到的数据出现乱码现象。...

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

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

    解决JS传递中文乱码问题

    3. **URL参数传递**:在URL中传递含有中文的参数。 #### 二、问题分析 乱码产生的根本原因在于字符编码不一致或编码转换错误。具体来说,在数据传输过程中涉及到以下几个关键环节: 1. **客户端编码**:前端页面...

    servlet url传递中文参数

    总之,处理Servlet中URL传递的中文参数需要理解URL编码的原理,并正确使用Java的相关API进行编码和解码。同时,注意字符集的设置,确保数据在传输过程中不会出现乱码。在开发过程中,合理利用工具和库函数,可以提高...

    C++Http上传文件到web服务器,解决中文参数乱码

    微软提供的CHttpConnect类在处理这种场景时可能存在不足,因此我们需要理解如何正确地编码和传递中文参数。 首先,让我们了解HTTP请求的基本结构。一个POST请求通常包括一个请求行、请求头和请求体。请求头可能包含...

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

    在Asp.Net开发中,遇到页面通过URL参数传递中文字符时出现乱码是一个常见的问题。这个问题通常是由于字符编码不一致导致的。以下是三种常见的解决方法: 1. **配置Web.config文件**: 在Web.config文件的`...

    解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题

    但是,在使用SpringMVC时,常见的一个问题是Controller 接收页面传递的中文参数出现乱码。这种情况下,Controller 无法正确地接收和处理中文参数,导致程序出现错误。那么,如何解决这个问题呢? 解决方法: ...

    修改Tomcat默认编码消除get方式传递参数出现中文乱码

    这一修改使得Tomcat能够正确解析和处理中文字符,避免了乱码现象的发生,提高了Web应用程序的可用性和用户体验。 值得注意的是,尽管`UTF-8`编码在多数场景下都是一个更优的选择,但在特定情况下,如旧系统兼容性...

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

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

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

    总的来说,处理URL中传递的中文参数时,合理使用`encodeURI`和对应的解码方法,结合理解浏览器和服务器的编码行为,是避免乱码的关键。本文提供的“前端两次encode——后端一次decode”方案,是一种兼容性好且相对...

    教学视频--JSP中URL传递中文乱码问题的解决演示.rar

    然而,在实际操作中,我们时常会遇到一个问题,那就是当JSP页面通过URL传递包含中文字符的参数时,可能会出现乱码现象。这个问题主要源于HTTP协议的特性以及字符编码的处理不当。本教学视频将详细讲解如何解决JSP中...

    解决url中文乱码.doc

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

    中文乱码处理问题总结

    在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点讨论在Java环境下,特别是Web应用开发中遇到的...

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

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

Global site tag (gtag.js) - Google Analytics