多语言展示
当前在线:1432今日阅读:84今日分享:32

Javascript 字符编码函数

javascript对字符编码/解码函数有3组: escape, unescape, encodeURI, decodeURI, encodeURIComponent, decodeURIComponent。作者将根据自己使用经验简单对其进行简单介绍。
工具/原料

chrome

具体用法
1

escape函数对ANSI码0-255以外的字符进行编码输出%u****格式即unicode值,所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数(例,空格返回的是 “%20″)。escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。对应解码函数为unescape。

2

encodeURI 函数用于对地址栏编码,将传入参数先转换为UTF-8的编码,再将参数中所有的非ASCII字母、数字、标点符号- _ . ! ~ * ' ( )以及在URI中有特殊意义的符号; / ? : @ & = + $ , #)字符替换为一个、两个或三个%xx的编码形式,其中ASCII字符被替换为%xx,\u0080到\u07ff被替换为%xx%xx,其他的16位的uniode字符被替换为%xx%xx%xx。encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z。对应解码函数为encodeURIComponent。

3

encodeURIComponent函数同样用于地址栏编码,和encodeURI函数的编码方式相同,但encodeURIComponent函数会对在URI中有特殊意义的符号(; / ? : @ & = + $ , #)进行编码,即不编码字符仅有71个。对应解码函数为decodeURIComponent。

区别及总结22

根据不同函数的编码特点,对数据最好用escape,对整个URL用encodeURI(合法字符都不会被编码转换),而对部分URL用encodeURIComponent(请求参数中的特殊意义的符号会被编码)。

案例33

下图为chrome控制台展示不同函数对字符的编码结果。

推荐信息