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实现动态菜单的实例代码
Nov 28 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
javascript搜索框效果实现方法
May 14 Javascript
js实现图片360度旋转
Jan 22 Javascript
hammer.js实现图片手势放大效果
Aug 29 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
Jul 24 Javascript
Vue左滑组件slider使用详解
Aug 21 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 清除网页病毒的方法
2008/12/05 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
PHP精确计算功能示例
2016/11/29 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
深入理解Python变量与常量
2016/06/02 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
tensorflow获取变量维度信息
2018/03/10 Python
python 同时运行多个程序的实例
2019/01/07 Python
python中 * 的用法详解
2019/07/10 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
连锁酒店店长职责范本
2014/02/13 职场文书
竞聘书格式及范文
2014/03/31 职场文书
普宁寺导游词
2015/02/04 职场文书
员工离职证明范本
2015/06/12 职场文书
表彰大会新闻稿
2015/07/17 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书