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 ajax提交表单数据的两种方式
Nov 24 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
原生JS实现表单checkbook获取已选择的值
Jul 21 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
Dec 23 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 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网站地图生成类示例
2014/01/13 PHP
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
详解python和matlab的优势与区别
2019/06/28 Python
容易被忽略的Python内置类型
2020/09/03 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
个人素质的自我评价分享
2013/12/16 职场文书
精彩广告词大全
2014/03/19 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
企业安全生产规章制度
2015/08/06 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技
Go语言测试库testify使用学习
2022/07/23 Golang