博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js的三种编码解码方法
阅读量:6275 次
发布时间:2019-06-22

本文共 1275 字,大约阅读时间需要 4 分钟。

注意

中文与英文字符不同,中文属于Unicode字符,在内存中占4个字符,而英文属于ASCII字符,内存中只占2个字节。Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会乱码

1. escape 和 unescape

1.1 escape() 函数可对字符串进行编码

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

document.write(escape("Visit W3School!") + "
")document.write(escape("?!=()#%&"))//结果Visit%20W3School%21%3F%21%3D%28%29%23%25%26复制代码

注: ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它

1.2 unescape() 函数可对通过 escape() 编码的字符串进行解码

2. encodeURI 和 decodeURI

2.1 encodeURI() 函数可把字符串作为 URI 进行编码

不会被编码的字符:, / ? : @ & = + $ #

var uri="my test.php?name=ståle&car=saab";document.write(encodeURI(uri)+ "
");//结果my%20test.php?name=st%C3%A5le&car=saab复制代码

2.2 decodeURI()

3. encodeURIComponent 和 decodeURIComponent

3.1 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )

此方法假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号

document.write(encodeURIComponent("http://www.w3school.com.cn"))document.write("
")document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))document.write("
")document.write(encodeURIComponent(",/?:@&=+$#"))//结果http%3A%2F%2Fwww.w3school.com.cnhttp%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F%2C%2F%3F%3A%40%26%3D%2B%24%23复制代码

转载地址:http://uxwva.baihongyu.com/

你可能感兴趣的文章
Arcgis Engine(ae)接口详解(8):临时元素(element)
查看>>
大数据技术核心之ETL
查看>>
轻松学PHP
查看>>
Android android.support.design包
查看>>
CheckBox:屏蔽setChecked方法对OnCheckedChangeListener的影
查看>>
java线程池
查看>>
UI面试内容
查看>>
Linux之RPM详解
查看>>
Windows Azure 常见问题及测试题
查看>>
flex DateChooser
查看>>
天天晚上打车--我对滴滴打车的想法
查看>>
由于MTU值设置不当造成的某些网站无法登录解决
查看>>
线程池
查看>>
聊聊高并发之隔离术
查看>>
JenKins 构建Github项目
查看>>
MySQL中from_unixtime与unix_timestamp差别
查看>>
LVS+KEEPALIVED实现高可用负载均衡架构
查看>>
Armadillo之行向量(row vector)
查看>>
搭建一个master对应2个slave
查看>>
Java 线程池的使用好处
查看>>