js对字符串进行编码的方法总结(推荐)


Posted in Javascript onNovember 10, 2016

在用javascript对URL字符串进行编码中,虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。

但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。

例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串就会出现乱码问题。

以下是JS下对URL进行编/解码的各种方法:

1、escape 方法:返回一个可在所有计算机上读取的编码 String 对象。

function escape(charString : String) : String

不会被此方法编码的字符: @ * / +

说明:escape 方法返回一个包含 charstring 内容的字符串值(Unicode 格式)。所有空格、标点、

重音符号以及任何其他非 ASCII 字符都用 %xx 编码替换,其中 xx 等于表示该字符的十六进制数。

例如,空格返回为“%20”。(字符值大于 255 的字符以 %uxxxx 格式存储。)

注意:escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。

2、encodeURI 方法:返回编码为有效的统一资源标识符 (URI) 的字符串。

function encodeURI(URIString : String) : String

不会被此方法编码的字符:! @ # $ & * ( ) = : / ; ? + '

说明:encodeURI 方法返回一个已编码的 URI。如果将编码结果传递给 decodeURI,则将返回初始的字符串。encodeURI 不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用

encodeURIComponent 对这些字符进行编码。

3、encodeURIComponent 方法:返回编码为统一资源标识符 (URI) 的有效组件的字符串。

function encodeURIComponent(encodedURIString : String) : String

不会被此方法编码的字符:! * ( ) '

说明:encodeURIComponent 方法返回一个已编码的 URI。如果将编码结果传递给decodeURIComponent,则将返回初始的字符串。因为 encodeURIComponent 方法将对所有字符编码,

请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,则其中的斜杠也将被编码,这样,当该字符串作为请求发送到 Web 服务器时它将是无效的。如果字符串中包含多个 URI 组件,请使用 encodeURI 方法进行编码。

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

function unescape(charString : String) : String

说明:unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的

字符都用 ASCII 字符集当中等效的字符代替。(以 %uxxxx 格式(Unicode 字符)编码的字符用十六

进制编码 xxxx 的 Unicode 字符代替。)

注意:unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。

5、decodeURI 方法:返回一个已编码的统一资源标识符 (URI) 的非编码形式。

function decodeURI(URIstring : String) : String

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

function decodeURIComponent(encodedURIString : String) : String

BTW:C#中对URL编码的方法。。。

编码:Server.UrlEncode(string)

解码:Server.UrlDecode(string) 前面三种客户端编码都可以用这个方法在后台解码。

以上就是小编为大家带来的js对字符串进行编码的方法总结(推荐)全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
Dec 25 Javascript
csdn 博客的css样式 v3
Feb 24 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
jQuery滚动加载图片效果的实现
Mar 06 Javascript
JS中如何设置readOnly的值
Dec 25 Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 Javascript
Canvas实现动态的雪花效果
Feb 13 Javascript
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
JavaScript继承与聚合实例详解
Jan 22 Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 Javascript
vue v-for 使用问题整理小结
Aug 04 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 #Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
Nov 10 #Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 #Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 #Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 #Javascript
微信小程序 删除项目工程实现步骤
Nov 10 #Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 #Javascript
You might like
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
opencv python如何实现图像二值化
2020/02/03 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
pandas apply多线程实现代码
2020/08/17 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
东方通信股份有限公司VC面试题
2014/08/27 面试题
生物学学生自我评价
2014/01/17 职场文书
学校与家长安全责任书
2014/07/23 职场文书
医德医风学习心得体会
2016/01/25 职场文书
团组织关系介绍信
2019/06/24 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
浅析python中特殊文件和特殊函数
2022/02/24 Python