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获取网页中的js、css、Flash等文件
Dec 20 Javascript
DIV菜单层实现代码
Nov 19 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
javascript数据类型示例分享
Jan 19 Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
Aug 19 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
WebSocket的通信过程与实现方法详解
Apr 29 Javascript
详解JavaScript的BUG和错误
May 07 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
基于JavaScript实现一个简单的Vue
Sep 26 Javascript
Node绑定全局TraceID的实现方法
Nov 14 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实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
php依赖注入知识点详解
2019/09/23 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
node.js的事件机制
2017/02/08 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python字符串对象实现原理详解
2019/07/01 Python
python同步windows和linux文件
2019/08/29 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
python实现在线翻译
2020/06/18 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
北承题目(C++)
2012/05/16 面试题
护士自荐信
2013/10/25 职场文书
管道维修工岗位职责
2013/12/27 职场文书
前台文员岗位职责
2013/12/28 职场文书
采购部长岗位职责
2014/06/13 职场文书