javascript 三种编解码方式


Posted in Javascript onFebruary 01, 2010

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language="javascript">document.write('<a href="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");

3、 js使用数据时可以使用escape[Huoho.Com编辑]

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

========================================================

unescape 方法

从用 escape 方法编码的 String 对象中返回已解码的字符串。

function unescape(charString : String) : String

参数

charString

必选。要解码的 String 对象或文本。

备注

unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。注意 unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。

decodeURI 方法

返回一个已编码的统一资源标识符 (URI) 的非编码形式。

function decodeURI(URIstring : String) : String

参数

URIstring

必选。表示编码 URI 的字符串。

备注

使用 decodeURI 方法代替已经过时的 unescape 方法。

decodeURI 方法返回一个字符串值。

如果 URIString 无效,将发生 URIError。

decodeURIComponent 方法

返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。

function decodeURIComponent(encodedURIString : String) : String

必选的 encodedURIString 参数是一个表示已编码的 URI 组件的值。

备注

URIComponent 是一个完整的 URI 的一部分

Javascript 相关文章推荐
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 Javascript
JavaScript实现数字数组按照倒序排列的方法
Apr 06 Javascript
JavaScript类继承及实例化的方法
Jul 25 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
JS实现的二叉树算法完整实例
Apr 06 Javascript
vue基于Element构建自定义树的示例代码
Sep 19 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
Dec 28 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 Javascript
js Proxy的原理详解
May 25 Javascript
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 #Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 #Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 #Javascript
详细讲解JS节点知识
Jan 31 #Javascript
javascript中的array数组使用技巧
Jan 31 #Javascript
jquery 批量上传图片实现代码
Jan 28 #Javascript
Jquery 常用方法经典总结
Jan 28 #Javascript
You might like
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
ParseInt函数参数设置介绍
2014/01/02 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
几道PHP的面试题
2012/05/19 面试题
小学英语教学反思
2014/01/30 职场文书
夜不归宿检讨书
2014/02/25 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
八年级英语教学反思
2016/02/15 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫