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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
ClearTimeout消除闪动实例代码
Feb 29 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
详解vue组件通信的三种方式
Jun 30 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
使用flow来规范javascript的变量类型
Sep 12 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
php提高网站效率的技巧
2015/09/29 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
CI框架附属类用法分析
2018/12/26 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
python中reader的next用法
2018/07/24 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
网上书店创业计划书
2014/01/12 职场文书
工作疏忽检讨书
2014/01/25 职场文书
小学生自我评价范文
2014/01/25 职场文书
创先争优宣传标语
2014/10/08 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang