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实现点击链接弹出"图片另存为"而不是直接打开
Aug 15 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
js实现网页随机切换背景图片的方法
Nov 01 Javascript
jQuery实现图片左右滚动特效
Apr 20 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
Mar 13 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 Javascript
解决layer.prompt无效的问题
Sep 24 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 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 常用类整理
2009/12/23 PHP
基于PHP文件操作的详解
2013/06/05 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
了解javascript中的Dom操作
2019/05/27 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
python多重继承实例
2014/10/11 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
小学语文教研活动总结
2014/07/01 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
英语教师求职信范文
2015/03/20 职场文书
网吧管理制度范本
2015/08/05 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers