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 相关文章推荐
Javascript中暂停功能的实现代码
Mar 04 Javascript
js判断是否为数组的函数: isArray()
Oct 30 Javascript
jquery解析xml字符串示例分享
Mar 25 Javascript
jQuery模拟点击A标记示例参考
Apr 17 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
Jan 25 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
React Navigation 使用中遇到的问题小结
May 08 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
Yii框架form表单用法实例
2014/12/04 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
Python模拟登录12306的方法
2014/12/30 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
Php多进程实现代码
2018/05/07 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python能开发游戏吗
2020/06/11 Python
python实现取余操作的简单实例
2020/08/16 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
考试不及格检讨书
2014/01/09 职场文书
学校端午节活动方案
2014/08/23 职场文书
怎样写离婚协议书
2014/09/10 职场文书
大学生万能检讨书范例
2014/10/04 职场文书