javascript中escape()、unescape()、encodeURI()、encodeURIComponent()、decode...
这些URI方法encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()代替了BOM的escape()和unescape()方法。URI方法更可取,因为他们对所有Unicode编号编码,而BOM方法只能对ASCII编号正确编码。尽量避免使用escape()和unescape()方法。
js对文字进行编码设计三个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、传递参数时,需要使用encodeURIComponent,这样组合的url才不会被#等特殊字段截断。
例如:
2、进行url跳转时可以整体使用encodeURI
例如:location.href = encodeURI(http://cang.baidu.com/do/s?word=百度&ct=21);
3、js使用数据时可以使用escape
例如:搜藏中history纪录
4、escape对0-255以外的unicode值进行编码输出%u****格式,其他情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,他是将中文、韩文等特殊字符装换成UTF-8格式的urll编码,所以结果给后台传递参数需要使用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 的一部分
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从包工头到程序猿(一)输红了眼
其实我在做包工头以前还是一个律师。 “包工头”是我爸说的,他一脸鄙夷,“你还什么装饰公司,还是什么叶总?就一个包工头!怕包工头都还不如……” 俱往矣! 装饰公司破产关门以后,我决定转型做一个家装行业的门户网站。吃了之前创业“不懂行”的亏,这次我下定决心,要首先把做网站的技术学好,然后再谈其他。什么才算学好呢?我自己给自己定了个标准:能一个人从头到尾把一个网站做出来才行。 了解了一下做网站的技术,书店里买了几本书,抱着啃了半天,快要哭了……都是些什么什么啊? 我本来觉得我还是有一些基础的,初三毕业在小霸王上写过Basic,打个什么三角形之类的;大学过计算机二级,学的Foxbase;工作以后整点电脑什么的,都没啥问题呀…… 但这书上写的些什么鬼?“面向对象”,“对象”,女朋友?“面向”,难道还“”背对着”?然后什么“继承”“多态”,让我的脑子在法学和生物学之间不断切换,然后一脸懵逼。 “不管这些概念了,反正有代码,我先跑一跑试试”,我怎么会被轻易难倒?根据我以往的经验,我坚信“书读百遍其义自见”。然而,代码敲到哪里去呢?不可能是word里面吧!按照书上说的,要安装Visual Studio...
- 下一篇
新版【CefSharp】 禁用右键菜单 43.00+
原文: 新版【CefSharp】 禁用右键菜单 43.00+ 禁用右键菜单其实是很容易的。主就要是实现一个接口IMenuHandler,这个接口有一个OnBeforeContextMenu的方法,我们在这里让返回一个false,右键菜单就消失了。 internal class MenuHandler : IMenuHandler { public bool OnBeforeContextMenu(IWebBrowser browser, IContextMenuParams parameters) { return false; } } 再将这个对像的实例赋给ChromiumWebBrowser对象的MenuHandler属性上就OK啦。 var browser = new ChromiumWebBrowser(url); browser.MenuHandler = new MenuHandler(); 以上的方法适用于老版本的CEFsharp 43.00开始,IMenuHandler已经改名了,直接复制以上代码是不存在的 问了高手,自己琢磨了下 原来 改成了IContextMenuH...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- 2048小游戏-低调大师作品
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作