`

URLEncode和URLDecode

 
阅读更多

 

 

在提交表单时,浏览器会根据请求URL生成相应的请求报文给服务器。在这个过程中,浏览器会将请求地址转换为application/x-www-form-urlencoded MIME编码的字符串先,如下图中在这个编码规范中把utf-8的中文字符“陈”转换成“%E9%99%88”

 

application/x-www-form-urlencoded编码规范是:

1.字符‘a’-‘z’、‘A’-‘Z’、‘0’-‘9’不变

2.特殊字符‘.’、‘-’、‘*’、‘_’不变

3.空字符“ ”转成“+”

4.其他字符都视为不安全,都进行转换,每一个byte根据一些规则转换成%xy形式,其中‘xy’是两个16进制数字表示一个byte。

 

以上面例子来解释。“陈”的unicode码是0x9648,二进制表示就是1001 0110 0100 1000,在utf-8的编码方式中需要3个byte来表示:11101001      10011001     10001000。用十六进制表示这三个byte就是E9、99,88。

 

URLEncode,URLDecode就是实现这个规范的编解码类,在看URLEncode源码时卡了两下,一个是String.charAt(i)返回的“陈”的unicode码(原因看下面),不过想想也是char是两byte的,当然不可能返回三个byte的2进制(String内部就是维护一个char数组)。另一个是char Character.forDigit(int digit,int radix)方法,这个方法参数radix是一个>=2 && <=36的值,radix的表示进制,10就是十进制。digit是一个>0 && <radix的数字。这个方法的作用就是在指定进制下一个数字的表达形式,其中超过9的就用小写字母接上。比如Character.forDigit(11,16)就是返回字符‘b’。

还有就是URLEncode的研发这位Herb Jellinek写代码过程用System.out.println()测试可以理解,不过直接把打印代码直接注释就提交有点丑了吧

写道
java中String字符串内部维护一个char数组,这个数组保存着字符串的unicode码,由于包括大部分中文字符在内的常用字符在unicode中都是用两个byte也就是16个bit来表示,char数据类型的长度就是两个字节,因此在一般情况下String内部的char数组一位保存一个unicode码。String有个length方法实际取得就是char数组的长度。我们直观的感受是一个“符号”就是一个长度。但是也有例外,比如中文
  • 大小: 59.3 KB
分享到:
评论

相关推荐

    用JavaScript实现UrlEncode和UrlDecode的脚本代码

    在深入理解JavaScript实现UrlEncode和UrlDecode函数的过程中,我们需要理解几个关键点:首先,URL编码和解码在Web开发中是一种常见的需求,用于确保URL中的特殊字符被正确传输。其次,JavaScript提供了一些内置的...

    urlencode urldecode实现

    `urlencode` 和 `urldecode` 就是用于此目的的两个关键函数。本篇文章将深入探讨这两个概念及其在Xcode中使用C++混编的实现。 `urlencode` 是一种编码方法,其目的是将非ASCII字符或者在URL中具有特殊含义的字符...

    Python3中urlencode和urldecode的用法详解

    今天小编就为大家分享一篇Python3中urlencode和urldecode的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    urlEncode or urlDecode

    在IT行业中,`urlEncode` 和 `urlDecode` 是两个非常关键的概念,它们主要用于处理URL(统一资源定位符)中的特殊字符。理解这两个概念对于网页开发、数据传输以及网络编程至关重要。 `urlEncode` 是一个过程,它将...

    ASP中实现的URLEncode、URLDecode自定义函数__1.docx

    本文主要讨论如何在ASP中实现URLEncode和URLDecode这两个功能,以便正确地处理URL中的特殊字符和编码问题。 首先,URL编码(URLEncode)是为了在URL中传递非ASCII字符或特殊字符时避免产生错误。URL中不能包含某些...

    UrlEncodeUrlDecodeUrl解码Url编码工具

    总之,UrlEncode和UrlDecode是处理URL的关键技术,确保了网络数据的正确传递。这个工具简化了编码解码的过程,方便了开发者和普通用户的使用。通过深入研究相关的源代码或工具,可以加深对URL编码机制的理解,提升...

    UrlEncodeDecode解码编码工具(双向)

    UrlEncode和UrlDecode是两个关键的概念,它们涉及到URL(统一资源定位符)的处理。本工具旨在提供一个方便、高效的解决方案,支持URL编码和解码的双向操作。 URL编码,也称为Percent-encoding,是URI(统一资源...

    易语言URL编解码

    URL编解码主要包括两个部分:URLEncode和URLDecode。URLEncode是将URL中的非字母数字字符转换为ASCII码的百分号编码形式,如空格通常会被转换为"%20"。这样做的原因是URL中不能包含某些字符,如空格、引号等,它们...

    用JavaScript实现PHP的urlencode与urldecode函数

    在Web开发中,URL编码(urlencode)和URL解码(urldecode)是常见的需求。这主要是为了确保URL的正确传输和使用,尤其是在URL的路径或查询字符串中包含特殊字符时。PHP中的urlencode和urldecode函数是处理这一需求的...

    PB 进制转换 url编码 urlencode urldecode 数组排序

    自己写的,可能有bug,请大家一块学习 环境为PB12 函数(及参数) 作用 arraysort 对一维数组进行排序 ...urldecode 将指定字符串以进行指定字符集url解码 urlencode 将指定字符串以进行指定字符集url编码 涨价了,哈哈

    php自定义urlencode,urldecode函数实例

    总结来说,自定义urlencode和urldecode函数可以帮助开发者解决在特定场景下遇到的问题,使得URL编码和解码过程更符合项目的实际需求。通过本文提供的代码实例,我们可以学习如何实现这样的自定义函数,并在自己的...

    用JavaScript实现PHP的urldecode/urldecode函数

    这个是 utf-8版本的 js实现 php的 urlencode() 和 urldecode()两个函数的功能。 在传送cookie的时候 在 php端实现 url编码 但要用 js来解码cookie的时候 就出现汉字不能不能识别的问题 这个 js 很好的解决

    ASP中实现的URLEncode、URLDecode自定义函数

    总体而言,自定义的URLEncode和URLDecode函数在ASP开发中提供了更大的灵活性,允许开发者根据实际情况对数据进行更精细的处理。在处理XML或HTML数据时尤其有用,因为它们可以避免不必要的编码,从而保持数据的完整性...

    idea插件toolsMix(记录下班时间、实时中英文翻译、jsonView、urlEncode、urlDecode、timeFormate)源码

    idea插件toolsMix (记录下班时间、实时中英文翻译、jsonView、urlEncode、urlDecode、timeFormate) 解压toolsMix.zip,toolsMix目录下的zip包为打包好的插件包,可以直接安装

    ASP中只有UrlEncode,没有Urldecode问题的解决方法?

    在ASP(Active Server Pages)编程中,UrlEncode和UrlDecode是两个非常关键的函数,它们用于处理Web请求中的URL编码和解码问题。UrlEncode函数用于对URL中的参数进行编码,确保特殊字符被转换成可以通过HTTP协议安全...

    网络传输文本,urlEncode和decode的实现。

    除了基本的`UrlEncode`和`UrlDecode`,还有针对特定编码集(如UTF-8、GBK等)的版本,如`UrlEncodeUnicode`和`UrlDecodeUnicode`。这些方法对于处理包含多种语言或特殊字符的文本尤其有用。 在实际应用中,`...

Global site tag (gtag.js) - Google Analytics