`

java中的URLEncoder和URLDecoder类处理编码与解码问题

    博客分类:
  • JAVA
阅读更多

 

 网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-form-urlencoded,这种类型会:

 1.字符"a"-"z","A"-"Z","0"-"9",".","-","*",和"_" 都不会被编码;</p>

 2.将空格转换为加号 (+) ;</p>

 3.将非文本内容转换成"%xy"的形式,xy是两位16进制的数值;</p>

 4.在每个 name=value 对之间放置 &amp; 符号。

URLEncoder类包含将字符串转换为application/x-www-form-urlencoded MIME 格式的静态方法。

web设计者面临的众多难题之一便是怎样处理不同操作系统间的差异性。这些差异性能引起URL方面的问题:例如,一些操作系统允许文件名中含有空格符,有些又不允许。大多数操作系统不会认为文件名中含有符号“#”会有什么特殊含义;但是在一个URL中,符号“#”表示该文件名已经结束,后面会紧跟一个fragment(部分)标识符。其他的特殊字符,非字母数字字符集,它们在URL或另一个操作系统上都有其特殊的含义,表述着相似的问题。为了解决这些问题,我们在URL中使用的字符就必须是一个ASCII字符集的固定字集中的元素,具体如下:1.大写字母A-Z 2.小写字母a-z 3.数字 0-9 4.标点符 - _ . ! ~ * ' (和 ,)   诸如字符: / &amp; ? @ # ; $ + = 和 %也可以被使用,但是它们各有其特殊的用途,如果一个文件名包括了这些字符( / &amp; ? @ # ; $ + = %),这些字符和所有其他字符就应该被编码。

  编码过程非常简单,任何字符只要不是ASCII码数字,字母,或者前面提到的标点符,它们都将被转换成字节形式,每个字节都写成这种形式:一个“%”后面跟着两位16进制的数值。空格是一个特殊情况,因为它们太平常了。它除了被编码成“%20”以外,还能编码为一个“+”。加号(+)本身被编码为%2B。当/ # = &amp; 和?作为名字的一部分来使用时,而不是作为URL部分之间的分隔符来使用时,它们都应该被编码。 //测试编码与解码

	public static void testCodeString(){
		String origialStr="EndUser:perf_test3@lf.com;算的Add Service Component:benchen , Darlen ;Remove Service Component:LF ";
		
		System.out.println("EndUser:perf_test3@lf.com;算的Ad".length());
		try {
			System.out.println("编码前的字符串为:"+origialStr);
			origialStr=URLEncoder.encode(origialStr,"UTF-8");
			System.out.println("编码后的字符串为:"+origialStr);
			origialStr=URLDecoder.decode(origialStr,"utf-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("解码后的字符串为:"+origialStr);

	}
 

显示结果:

 

编码前的字符串为:EndUser:perf_test3@lf.com;算的Add Service Component:benchen , Darlen ;Remove Service Component:LF 

编码后的字符串为:EndUser%3Aperf_test3%40lf.com%3B%E7%AE%97%E7%9A%84Add+Service+Component%3Abenchen+%2C+Darlen+%3BRemove+Service+Component%3ALF+

解码后的字符串为:EndUser:perf_test3@lf.com;算的Add Service Component:benchen , Darlen ;Remove Service Component:LF 


 

 

分享到:
评论

相关推荐

    java中的URLEncoder和URLDecoder类.docx

    在 Java 中,URLEncoder 和 URLDecoder 是两个非常重要的类,它们用于处理 URL 编码和解码问题。在本文中,我们将深入探讨这两个类的使用方法、特点和应用场景。 一、URLEncoder 类 URLEncoder 类是一个静态类,它...

    java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    在Java编程语言中,`URLDecoder`和`URLEncoder`是两个非常重要的工具类,主要用于处理URL中的中文字符和其他特殊字符。这两个类位于`java.net`包下,可以帮助开发者进行字符串编码和解码,确保数据在网络传输过程中...

    J2ME URLEncoder 和 URLDecoder 类的实现

    总的来说,自定义`URLEncoder`和`URLDecoder`类是J2ME开发中的常见实践,它帮助开发者在移动设备上实现与服务器的交互,处理URL编码和解码的需求,尽管这可能需要额外的工作来弥补J2ME环境的不足。在实际应用中,...

    j2ME URLEncoder Vs URLDEcoder

    在Java Micro Edition (J2ME) 平台上,URLEncoder和URLDecoder是两个非常重要的工具类,主要用于处理HTTP请求中的参数编码与解码。这两个类位于`java.net`包下,对于开发移动应用,尤其是涉及到网络通信的应用时,...

    URLEncoder与URLDecoder的应用

    在Java编程语言中,`URLEncoder`与`URLDecoder`是处理URL编码和解码的两个重要工具类。它们主要应用于对字符串进行编码或解码,确保这些字符串能够安全地在网络上传输。尤其是在处理包含特殊字符(如中文字符)的...

    java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法

    `URLEncoder.encode()` 和 `URLDecoder.decode()` 是Java标准库中的两个关键方法,分别用于对URL参数进行编码和解码,以确保数据能够正确无误地在网络间传输。 **`URLEncoder.encode()`** 方法接受两个参数:需要...

    Java文本字符编码解码操作类 Escape.java源代码.rar

    在Java中,`java.net.URLEncoder`和`java.net.URLDecoder`两个类常用于URL编码和解码,而`java.nio.charset`包提供了对各种字符编码的支持。然而,`Escape.java`源代码可能是自定义实现的一个工具类,它可能包含了...

    java 使用URLDecoder和URLEncoder对中文进行处理

    在Java编程语言中,URLDecoder和URLEncoder是两个非常重要的工具类,主要用于处理URL(统一资源定位符)中的中文字符。这是因为URL的标准格式不支持直接包含非ASCII字符,特别是中文等多字节字符,需要进行特定的...

    淘宝 url 解码和编码方法(转的)

    总之,淘宝URL的编码和解码是通过标准的Java库实现的,主要涉及`java.net.URLEncoder`和`java.net.URLDecoder`两个类。理解这一过程对于开发与淘宝API交互的应用程序至关重要,确保数据在传输过程中不会因为编码问题...

    Java中的UrlDecoder 和 UrlEncoder_动力节点Java学院整理

    Java中的`UrlDecoder`和`UrlEncoder`是两个非常重要的工具类,主要用于处理URL编码和解码的问题。在Web开发中,特别是在HTTP请求和响应中,URL编码是必不可少的步骤,因为URL中不能包含某些特殊字符,如空格、中文...

    深入分析 Java 中的中文编码问题

    在Java编程语言中,中文编码问题是一个常见的挑战,尤其是在处理文本输入、输出或者网络通信时。本文将深入探讨Java中的中文编码问题,包括其原因、解决策略以及相关的API使用。 一、编码概述 编码是将字符(如中文...

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

    在JavaScript和Java中,处理URL参数,特别是涉及到中文字符时,需要特别关注编码和解码的问题。本主题将深入探讨“jsurl传值”与“java页面url传值中文编码&解码”的相关知识点。 首先,我们要了解URL编码。URL编码...

    Java实现url加密处理的方法示例

    在Java中,可以使用`java.net.URLEncoder.encode()`方法对加密字符串进行编码,解码则使用`java.net.URLDecoder.decode()`。 7. **异常处理**:在实际应用中,应更全面地处理可能抛出的异常,包括捕获并记录异常...

    url编码解码

    在JSP页面中,可以使用`java.net.URLEncoder`类来进行URL编码操作。例如: ```java String str = "这是一个测试"; String encodedStr = URLEncoder.encode(str, "UTF-8"); ``` 这里使用了`URLEncoder.encode()`...

    java中文乱码之解决URL中文乱码问题的方法

    - Java标准库提供了`java.net.URLDecoder` 和 `java.net.URLEncoder` 类,可以用于编码和解码URL。在某些场景下,它们可能比直接操作字符串更安全和方便。 总之,解决Java中的URL中文乱码问题需要理解URL编码的...

    java中的编码知识

    4. **URL编码与解码**:在网络请求中,URL中的特殊字符需要进行编码,可以使用`URLEncoder.encode(urlPart, "UTF-8")`。相应的,`URLDecoder.decode(encodedUrlPart, "UTF-8")`用于解码。 5. **国际化与本地化**:...

    java编码格式(对常见的java中文乱码作出分析及提出解决方案)

    7. **参数传递**:在HTTP请求中,确保请求参数使用正确的编码,如使用`URLEncoder.encode`和`URLDecoder.decode`进行URL编码和解码。 8. **国际化支持**:使用Java的`java.text`包提供的类,如`java.text....

    Java中文字符编码探究.pdf

    解决这个问题可以使用URLDecoder和 URLEncoder类,这些类可以将中文字符正确地编码和解码,从而解决提交中文乱码的问题。 Java中文字符编码探究是非常重要的。了解不同的字符编码方式和Java中的字符编码机制,可以...

    UrlDecoder和UrlEncoder使用详解_动力节点Java学院整理

    UrlDecoder和UrlEncoder是Java语言中两个重要的工具类,分别用于URL编码和解码。下面是对这两个类的详细介绍和使用方法。 一、UrlEncoder UrlEncoder是Java语言中一个静态方法的工具类,用于将String转换为...

Global site tag (gtag.js) - Google Analytics