encodeURIcomponent编码和ASP.NET之间编码转换

Javascript的URL编码转换,escape() encodeURI() encodeURIComponent(),asp.net 的UrlDecode进行解码 。

本文介绍对url编码的三种函数 escape() ,encodeURI() ,encodeURIComponent()

escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIComponent() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312 或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。 注意:escape 方法不能用来对“统一资源标识符”(uri) 进行编码。对其编码应使用 encodeuri 和 encodeuricomponent 方法。

另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

Integer == 和equals -128--127的比较问题

先看一段代码: public static void main(String[] args) { Integer a = new Intege...

39170
来自专栏進无尽的文章

Swift| 基础语法(一)

总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多...

14220
来自专栏王二麻子IT技术交流园地

JS中encodeURI,escape,encodeURIComponent区别

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,...

23380
来自专栏老马说编程

(24) 异常 (上) / 计算机程序的思维逻辑

之前我们介绍的基本类型、类、接口、枚举都是在表示和操作数据,操作的过程中可能有很多出错的情况,出错的原因可能是多方面的,有的是不可控的内部原因,比如内存不够了、...

17360
来自专栏nummy

querystring模块详解

parse方法还有三个可选参数,分别是分隔符(默认为&),赋值符(默认为=),以及配置对象,配置对象又有两个可选参数,分别是````maxKeys(最多能解析多...

11930
来自专栏HTML5学堂

2016.01.05 HTML5真题练习

HTML5学堂:每天一道题,强壮程序员!今日主要涉及01.04日关于Date对象的题目解答,以及一道涉及数组转换成字符串操作的题目。 HTML5真题【2016....

27950
来自专栏java一日一条

Java 动态代理深入解析

要想了解Java动态代理,首先要了解什么叫做代理,熟悉设计模式的朋友一定知道在Gof总结的23种设计模式中,有一种叫做代理(Proxy)的对象结构型模式,动态代...

10050
来自专栏恰童鞋骚年

剑指Offer面试题:30.第一个只出现一次的字符

  最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字...

8620
来自专栏一个爱瞎折腾的程序猿

C#运算符的简单使用测试

表达式A(true) | 表达式B :表达式都会执行(| ----- 位运算符) 表达式A(true) || 表达式B :表达式B不会执行(||--短路运算符...

18350
来自专栏ShaoYL

iOS:swift :可选类型

31370

扫码关注云+社区

领取腾讯云代金券