`
chenlong_1988
  • 浏览: 185856 次
  • 性别: Icon_minigender_2
社区版块
存档分类

【转】java 页面url传值中文编码&解码

    博客分类:
  • java
阅读更多

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正确获取参数;

分享到:
评论

相关推荐

    jsurl传值java页面url传值中文编码&amp;amp;amp;解码共2页

    本主题将深入探讨“jsurl传值”与“java页面url传值中文编码&解码”的相关知识点。 首先,我们要了解URL编码。URL编码是根据RFC3986标准,对URL中的特殊字符进行转换,以避免与URL语法产生冲突。在JavaScript中,...

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

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

    java.io.CharConversionException: isHexDigit处理

    Java.io.CharConversionException: isHexDigit 是 Java 中一种常见的异常,通常发生在传输数据时编码不正确或 URL 传值时出现问题。本文将对该异常进行详细分析,介绍导致该异常的原因和解决方法。 一、问题描述 ...

    解决java页面URL地址传输参数乱码的方法

    总结来说,解决Java页面URL地址传输参数乱码问题的关键在于确保URL编码和解码过程中的字符集一致。通过调整Tomcat服务器配置或者在Java代码中进行手动处理,可以有效地避免中文参数在URL传输过程中出现乱码。当然,...

    url传值异常java.io.CharConversionException: isHexDigit

    总结起来,当遇到"java.io.CharConversionException: isHexDigit"异常时,应该检查前端传递的URL参数是否正确编码,并确保在服务器端使用正确的解码方法和字符集。使用`encodeURI`或`encodeURIComponent`函数代替`...

    domino xpages URL中文传值

    总之,Domino XPages 中传递中文参数需要进行 URL 编码,并确保前后端的编码与解码过程保持一致。通过使用 `encodeURI()` 和 `URLDecoder.decode()`,可以有效地处理中文字符的传输,同时结合其他技术如随机参数,...

    struts 2中文汉字传值

    总之,Struts 2 中处理中文汉字传值的关键在于理解和正确使用字符编码,包括设置页面编码、响应编码、URL编码和Action中的解码步骤。确保每个环节都与UTF-8编码兼容,可以避免中文字符的乱码问题。在实际开发中,还...

    url地址传参中文乱码处理

    然而,这种方式有很大的弊端,因为它可能无法将所有汉字全部解码完,导致最后一个字可能是乱码。因此,不建议使用这种方式。 2. 在传参前转码:在传递参数前,使用java.net.URLEncoder.encode("xxxx",“utf-8")将...

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

    服务器端使用`getBytes("ISO-8859-1")`将接收到的参数转成字节数组,然后再用`new String(..., "UTF-8")`将其转换回字符串,这里的关键在于从ISO-8859-1转到UTF-8,因为ISO-8859-1编码不支持中文字符,而URL编码默认...

    js传值后台中文出现乱码的解决方法

    // 编码解码 } catch (Exception e) { e.printStackTrace(); } ``` 上述代码通过`URLDecoder.decode()`方法解码从URL中获取的参数值,以确保中文字符可以正确地显示和处理。 除了编码和解码之外,文档还提到了多...

    简单实例处理url特殊符号&amp;处理(2种方法)

    在服务器端,Java提供`URLEncoder.encode()`方法用于编码URL参数,而`URLDecoder.decode()`用于解码。确保在编码和解码时使用相同的字符集,以避免数据丢失或解析错误。 总结来说,处理URL特殊符号,尤其是`&`,...

    超链接传值不显示中文

    在给定的代码片段中,开发者试图通过JavaScript点击事件触发超链接,并通过`encodeURI`函数对URL进行编码处理,以便在URL中正确传输包含中文字符的数据。同时,在服务器端,采用了`URLDecoder.decode()`方法来解码...

    JSP中文解码方法

    在JavaServer Pages (JSP)开发中,处理中文字符的编码问题是一项常见的任务。中文字符在不同的阶段可能会遇到乱码,这通常与JSP页面、HTTP请求方式(POST和GET)以及服务器配置有关。以下是对标题和描述中所述知识点...

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

    然而,这种做法增加了代码的复杂性,并且每次传递都需要进行编码解码操作。 在这种情况下,我们可以考虑使用一种另类的解决方案,即动态创建表单(Dynamic Form)的方法。这个方法的核心思想是利用HTML表单的POST...

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

    在开发Web应用时,尤其是使用Java的JSP技术,开发者经常会遇到中文乱码的问题。这是因为字符编码不一致导致的,特别是在处理用户输入或从数据库获取数据时。本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题...

    解决ajax乱码和页面传值问题

    在Web开发中,Ajax(Asynchronous ...总结,解决Ajax乱码问题主要涉及数据编码、请求头设置和服务器端解码,而页面传值则需根据需求选择适当的方法。理解并熟练运用这些技巧,能显著提升Web应用的性能和用户体验。

    URL的参数中有加号传值变为空格的问题(URL特殊字符)

    在处理URL参数时,可能会遇到一些特殊字符问题,比如本文提到的“URL的参数中有加号传值变为空格”的问题。这个问题源于URL编码的规则。 URL编码是一种将特殊字符转换为ASCII码的过程,以便于在网络传输中正确解析...

    j2ee中文乱码问题终极解决之道

    1. 修改J2EE容器配置:例如Tomcat的`server.xml`,在`&lt;Connector&gt;`标签中设置`URIEncoding`属性为相应的中文编码(如GBK或GB2312),确保URL参数的正确解码。 2. 字符串编码转换:在接收数据时,使用`getBytes()`和...

Global site tag (gtag.js) - Google Analytics