`
flyeagle
  • 浏览: 214212 次
  • 来自: ...
社区版块
存档分类
最新评论
阅读更多

转自:

http://blog.csdn.net/yangyz_love/article/details/7963497

 

URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码。

 

这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码。但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。

 

在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步:

 

1、在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如:

 

title=escape(encodeURIComponent(title)); //这是js里的函数

 

 url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;

 

2、在服务端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),进行解码。

 

 

 

-----------------------------------------------------------------------------

 

parent.window.location.href 和 iframe中src的乱码问题。

 

要在这两个url地址中传中文,必须加编码,然后再解码。

 

编码:encodeURI(encodeURI("包含中文的串"))

 

解码:java.net.URLDecoder.decode("需要解码的串","utf-8");

 

 

encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是 把中文编码成%xy的格式,第二次是对%xy中的%进行编码,%编码成%25。整个传参过程大体应该是:提交页面使用 encodeURI(encodeURI("中文"))编码,把最后的编码结果%25xy传递给处理页面的过程中,浏览器获取URL地址(注意 openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用 URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。
总结:
1、汉字出现在URL路径部分的时候不需要编码解码;
2、使用encodeURI进行2次编码;
3、在openModelDialog()打开的模式窗体里没办法用request.getParameter正确获取参数;

分享到:
评论

相关推荐

    url传值到Action乱码解决方案

    在Web应用程序中,URL传值到Action是一个常见的操作,但是当传递中文参数时,经常会出现乱码问题。今天,我们将讨论如何解决URL传值到Action乱码问题,特别是在Struts2框架中。 乱码问题的原因 乱码问题的原因是...

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

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

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

    了解这些基本概念后,结合以上三种方法,我们可以有效解决ASP.NET中URL参数传递中文时的乱码问题。在实际开发中,应根据具体项目需求和环境选择合适的方法,确保数据的正确传递。同时,为了兼容更多情况,建议在开发...

    Url传值乱码解决方案

    本文将深入探讨URL编码的原因、原理以及如何解决URL传值乱码的常见问题。 URL(统一资源定位符)是互联网上资源的唯一标识,它包含了协议、主机名、路径和查询参数等部分。由于URL中可能包含非ASCII字符或特殊字符...

    javascript解决URL传值时乱码的方法.doc

    javascript解决URL传值时乱码的方法.doc

    jsp传值中文乱码问题解决方法示例介绍.docx

    在开发Web应用时,尤其是使用Java的JSP技术,开发者经常会遇到中文乱码的问题。这是因为字符编码不一致导致的,特别是在处理用户输入或从数据库获取数据时。...同时,理解字符编码原理,有助于更好地排查和解决问题。

    js url传值中文乱码之解决之道

    总结来说,解决JavaScript URL传值中文乱码问题,关键在于客户端和服务器端字符集编码和解码的一致性。需要确保编码和解码使用同样的字符集标准,并且在一些特殊情况下可能需要对URL进行两次编码。在实际操作中,...

    前后台传值乱码问题万能思想,通用

    "前后台传值乱码问题万能思想,通用"的主题着重于解决这个问题的通用思路,而不是具体的代码实现。以下是对这个主题的详细说明: 首先,我们需要理解“乱码”产生的原因。乱码通常出现在数据在不同字符集之间转换时...

    jsp传值中文乱码问题解决方法示例介绍

    本文将详细介绍如何解决JSP中的中文乱码问题,并通过示例代码进行说明。 首先,我们要理解乱码产生的原因。在Web应用中,数据在不同层次间传输时,如果字符编码不一致,就可能导致乱码。例如,从数据库读取的中文...

    url地址传参中文乱码处理

    "URL地址传参中文乱码处理" URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给...在处理URL地址传参中文乱码时,需要根据具体情况选择合适的解决方案,并注意编码问题、特殊字符处理和Tomcat配置等方面。

    java 页面url传值中文乱码的解决方法

    Java 页面URL传值中文乱码问题通常出现在前端Ajax请求中,当URL参数包含中文字符时,服务器端通过`request.getParameter()`获取参数时,可能会出现乱码现象。这是因为HTTP协议默认使用ISO-8859-1编码,而中文字符...

    js转换汉字通过URL传值避免乱码

    这是一个JS把汉字转换编码格式避免乱码的类,相当于ASP或是.NET中的UrlEncode方法.使用方法是var str = UrlEncode("这里是你要转换的汉字");这个方法有个缺点,不支持全角标点,所以要配合下面的方法把全角转换半角才...

    structs传值中文乱码

    在传值时会遇到中英文乱码 &lt;filter-name&gt;GBKEncoding &lt;filter-class&gt;com.sshnews.filter.GBKEncodingFilter&lt;/filter-class&gt; &lt;filter-name&gt;GBKEncoding &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt;

    jsp传值本地无乱码测试机出现乱码问题解决

    在进行JSP传值操作时,字符编码的设置和转换是解决乱码问题的关键。开发人员需要确保在客户端和服务器端采用统一的编码标准,并在必要时进行适当的编码转换。同时,通过充分的测试和良好的文档记录,可以提前发现和...

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的...乱码问题的解决需要从多方面入手,包括设置页面编码、服务器编码、客户端编码、数据库编码和超链接的 url 编码等。只有通过统一编码,才能避免乱码问题的出现。

    JS解决url传值出现中文乱码的另类办法

    总之,动态表单提供了一种有效解决URL中文乱码问题的策略,特别是在需要传递复杂或包含中文的参数时,这种方法显得尤为实用。在实际开发中,我们可以根据项目需求和具体情况选择最适合的解决方案。

    jquery的ajax()函数传值中文乱码解决方法介绍

    中文乱码问题通常可以通过以下方式解决: 1. 使用`encodeURI()`进行两次编码,并在服务器端进行解码。 2. 设置ajax请求的`contentType`属性为`charset=UTF-8`。 3. 在服务器端确保请求的字符编码设置为UTF-8。 4. ...

    解决url中文乱码.doc

    总结,解决Java Web中的URL中文乱码问题,关键在于发送请求时使用`URLEncoder.encode()`进行编码,以及在接收请求时设置正确的字符编码,如在JSP页面和Struts2 Action中。同时,可以通过配置过滤器确保整个应用程序...

Global site tag (gtag.js) - Google Analytics