jsurl编码:JS对URL字符串进行编码/解码分析

虽然escape、encodeURI、encodeURIComponent 3种思路方法都能对些影响URL完整性特殊
进行过滤但后两者是将串转换为UTF-8方式来传输解决了页面编码不至导致乱码问
例如:发送页和接受页编码格式(Char)不致(假设发送页面是GB2312而接收页面编码是
UTF-8)使用escape转换传输中文字串就会出现乱码问题
以下是JS下对URL进行编/解码各种思路方法:
escape 思路方法:返回个可在所有计算机上读取编码 String 对象
function escape(charString : String) : String
不会被此思路方法编码: @ * / +
介绍说明:escape 思路方法返回个包含 char 内容串值(Unicode 格式)所有空格、标点、
重音符号以及任何其他非 ASCII 都用 %xx 编码替换其中 xx 等于表示该十 6进制数
例如空格返回为“%20”(值大于 255 以 %uxxxx 格式存储)
注意:escape 思路方法不能用来对“统资源标识符”(URI) 进行编码对其编码应使用 encodeURI 和
encodeURIComponent 思路方法
encodeURI 思路方法:返回编码为有效资源标识符 (URI)
function encodeURI(URIString : String) : String
不会被此思路方法编码:! @ # $ & * ( ) = : / ; ? + '
介绍说明:encodeURI 思路方法返回个已编码 URI如果将编码结果传递给 decodeURI则将返回
encodeURI 不对下列进行编码:“:”、“/”、“;”和“?”请使用
encodeURIComponent 对这些进行编码
encodeURIComponent 思路方法:返回编码为统资源标识符 (URI) 有效组件
function encodeURIComponent(encodedURIString : String) : String
不会被此思路方法编码:! * ( ) '
介绍说明:encodeURIComponent 思路方法返回个已编码 URI如果将编码结果传递给
decodeURIComponent则将返回 encodeURIComponent 思路方法将对所有编码
请注意如果该串代表个路径例如 /folder1/folder2/default.html则其中斜杠也将被
编码这样当该串作为请求发送到 Web 服务器时它将是无效如果串中包含多个 URI
组件请使用 encodeURI 思路方法进行编码
unescape 思路方法:从用 escape 思路方法编码 String 对象中返回已解码
function unescape(charString : String) : String
介绍说明:unescape 思路方法返回个包含 char 内容串值所有以 %xx 十 6进制形式编码
都用 ASCII 集当中等效代替(以 %uxxxx 格式(Unicode )编码用十 6
进制编码 xxxx Unicode 代替)
注意:unescape 思路方法不应用于解码“统资源标识符”(URI)请改用 decodeURI 和
decodeURIComponent 思路方法
decodeURI 思路方法:返回个已编码资源标识符 (URI) 非编码形式
function decodeURI(URI : String) : String
decodeURIComponent 思路方法:返回统资源标识符 (URI) 个已编码组件非编码形式
function decodeURIComponent(encodedURIString : String) : String
BTW:C#中对URL编码思路方法
编码:Server.UrlEncode()
解码:Server.UrlDecode() 前面 3种客户端编码都可以用这个思路方法在后台解码
Tags:  js字符串长度 js截取字符串 js字符串 jsurl编码

延伸阅读

最新评论

发表评论