js编码、解码函数介绍及其使用示例
2023-06-13 09:15:05 时间
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:
<scriptlanguage="javascript">document.write("<ahref="http://passport.baidu.com/?logout&aid=7&u="+encodeURIComponent
("http://cang.baidu.com/bruce42")+"">退出</a>");</script>
2、进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(http://cang.baidu.com/do/s?word=中国&ct=21);
使用这个方法编码的字符在PHP中可以使用urldecode()函数反编码
3、js使用数据时可以使用escape
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,",(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!,",(,),*,-,.,_,~,0-9,a-z,A-Z
附上这个三个函数的介绍:
escape方法
对String对象编码以便它们能在所有计算机上可读,
escape(charString)
必选项charstring参数是要编码的任意String对象或文字。
说明
escape方法返回一个包含了charstring内容的字符串值(Unicode格式)。所有空格、标点、重音符号以及其他非ASCII字符都用%xx编码代替,
其中xx等于表示该字符的十六进制数。例如,空格返回的是"%20"。
字符值大于255的以%uxxxx格式存储。
注意escape方法不能够用来对统一资源标示码(URI)进行编码。对其编码应使用encodeURI和encodeURIComponent方法。
encodeURI方法
将文本字符串编码为一个有效的统一资源标识符(URI)。
encodeURI(URIString)
必选的URIString参数代表一个已编码的URI。
说明
encodeURI方法返回一个编码的URI。如果您将编码结果传递给decodeURI,那么将返回初始的字符串。encodeURI方法不会对下列字符进行编码:":"、
"/"、";"和"?"。请使用encodeURIComponent方法对这些字符进行编码。
encodeURIComponent方法
将文本字符串编码为一个统一资源标识符(URI)的一个有效组件。
encodeURIComponent(encodedURIString)
必选的encodedURIString参数代表一个已编码的URI组件。
说明
encodeURIComponent方法返回一个已编码的URI。如果您将编码结果传递给decodeURIComponent,那么将返回初始的字符串。因为encodeURIComponent
方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如/folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结
果被作为请求发送到web服务器时将是无效的。如果字符串中包含不止一个URI组件,请使用encodeURI方法进行编码。
1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:
<scriptlanguage="javascript">document.write("<ahref="http://passport.baidu.com/?logout&aid=7&u="+encodeURIComponent
("http://cang.baidu.com/bruce42")+"">退出</a>");</script>
2、进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(http://cang.baidu.com/do/s?word=中国&ct=21);
使用这个方法编码的字符在PHP中可以使用urldecode()函数反编码
3、js使用数据时可以使用escape
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,",(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!,",(,),*,-,.,_,~,0-9,a-z,A-Z
附上这个三个函数的介绍:
escape方法
对String对象编码以便它们能在所有计算机上可读,
escape(charString)
必选项charstring参数是要编码的任意String对象或文字。
说明
escape方法返回一个包含了charstring内容的字符串值(Unicode格式)。所有空格、标点、重音符号以及其他非ASCII字符都用%xx编码代替,
其中xx等于表示该字符的十六进制数。例如,空格返回的是"%20"。
字符值大于255的以%uxxxx格式存储。
注意escape方法不能够用来对统一资源标示码(URI)进行编码。对其编码应使用encodeURI和encodeURIComponent方法。
encodeURI方法
将文本字符串编码为一个有效的统一资源标识符(URI)。
encodeURI(URIString)
必选的URIString参数代表一个已编码的URI。
说明
encodeURI方法返回一个编码的URI。如果您将编码结果传递给decodeURI,那么将返回初始的字符串。encodeURI方法不会对下列字符进行编码:":"、
"/"、";"和"?"。请使用encodeURIComponent方法对这些字符进行编码。
encodeURIComponent方法
将文本字符串编码为一个统一资源标识符(URI)的一个有效组件。
encodeURIComponent(encodedURIString)
必选的encodedURIString参数代表一个已编码的URI组件。
说明
encodeURIComponent方法返回一个已编码的URI。如果您将编码结果传递给decodeURIComponent,那么将返回初始的字符串。因为encodeURIComponent
方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如/folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结
果被作为请求发送到web服务器时将是无效的。如果字符串中包含不止一个URI组件,请使用encodeURI方法进行编码。
相关文章
- Fabric.js 使用纯色遮挡画布(前景色)
- java数组和list转换_js将数组转换成字符串
- js面试题及答案2020_JS面试题大全
- node.js 安装与环境变量配置
- js通过contentWindow控制iframe子页面元素点击事件,并把值传给父页面[通俗易懂]
- 原生 JS 实现 HTML 转 Markdown,以及其实现逻辑(html2md.js 或 html2markdown.js)
- Java执行js代码详解编程语言
- JavaScript实现MySQL数据库查询(js查询mysql数据库)
- 使用 JS 操作 Redis:实现强大数据存储.(js调用redis)
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- 使用JS控制Oracle数据库的更新(js控制oracle更新)
- JavaScript探索之旅掌握Oracle和JS的完美融合(js与oracle)
- Oracle中使用JS变量管理数据(oracle使用js变量)
- JS代码的格式化和压缩
- 常用JS加密编码算法代码
- 正则表达式提取网址、标题、图片等一例(.NetAspJavascript/Js)的实现
- js中巧用cssText属性批量操作样式
- Js中setTimeout()和setInterval()何时被调用执行的用法
- JS中如何判断传过来的JSON数据中是否存在某字段