JavaScript编码解码详细介绍
来源:互联网 发布:淘宝购物车图片 编辑:程序博客网 时间:2024/05/30 05:22
1. escape()
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码+/-*_.@。其他所有的字符都会被转义序列替换。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。而对于0-255以外的unicode值进行编码时输出%u****格式,例如”我”编码后的值为%u6211。
2. encodeURI()
encodeURI() 函数可把字符串作为 URI 进行编码,其中的某些字符将被十六进制的转义序列进行替换。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码+/-*_.!~@’();/?:&=$,#。该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
3. encodeURIComponent()
encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码-*_.!~’()。
总结:
1. escape()对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent如果对特殊字符编码则结果相同,结果相同是指字符同时在这三个函数的编码范围内时,比如空格,对于/等不是三个函数同时处理则没有比较意义。
2. escape()是一个古老的函数,所以尽量不要使用。当对URI进行编码时,因为escape会对URI中常见字符进行编码,比如/?等,所以对URI进行编码时应该选择encodeURI(),而当对用户提交的表单字段进行编码时,我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。但escape()不会对’+'进行编码,所以这时应该选择encodeURIComponent()。
3. 因为encodeURI()不对URL中常见的字符进行编码:;/?:@&=+$,#,而escape()和encodeURIComponent()会对这些特殊字符编码,所以当对URI进行编码时应该选择encodeURI()。
4. encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的。因为如果参数中包含了?&等特殊字符的话,encodeURI是不会对它们进行编码的,这样可能就造成解析请求参数的错误,不用escape()的原因见总结的第一条。
5. 三个函数对应的解码函数分别是unescape(), decodeURI(), decodeURIComponent()。
6. 很多时候浏览器会自动对数据进行编码,比如URL,因此在传输数据前最好先进行编码,接收后再用对应的解码函数进行解码,这样可以有效的保证数据的一致性。
- JavaScript编码解码详细介绍
- JPG文件编解码详解——详细介绍编码和解码JPG
- base64编码/解码 javascript
- base64编码/解码 javascript
- JavaScript编码 和 解码
- javascript base64编码解码
- javascript的编码解码
- javaScript编码解码
- javascript编码与解码
- JavaScript编码解码
- JavaScript 编码解码方法
- 编码解码以及码表介绍
- javascript 中的编码与解码
- JavaScript Base64编码和解码
- javascript URL 编码,解码函数
- javascript中的编码与解码
- javascript中的编码与解码
- javascript中的编码与解码
- 程序员的成长
- Harold kerzner博士有关项目管理的16条至理名言
- 如何查看linux版本
- Hadoop之个性化数据类型
- 移植ffmpeg和SDL到tq2440
- JavaScript编码解码详细介绍
- 第1章:显示五条消息
- NEC开启国内首个智能养老服务系统
- jxl的下载地址
- 总结C++读写文件的方法
- 项目管理--工具篇
- 开发人员行走Unix的随身四艺
- 模态窗口
- mysql优化