JS 和 Java 中URL特殊字符编码方式
前几天遇到url特殊字符编码的问题,在这里整理一下:
JavaScript
1. 编码 escape(String)
其中某些字符被替换成了十六进制的转义序列。
解码 unescape(String)
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
*注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
2. 编码 encodeURI(URIstring)
返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
*如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
解码 decodeURI(URIstring)
返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
3. 编码 encodeURIComponent(URIstring)
返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
解码 decodeURIComponent(URIstring)
返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
*encodeURIcomponent() 与 encodeURI() 区别
encodeURIComponent(URIstring) : 假定其参数是URI一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号(? # 等)。
encodeURI(URIstring) : 不会对URI中的分隔符编码,如 ? # 等。
Java
编码: Class URLEncoder
static String encode(String s);
static String encode(String s, String enc);//enc 编码方式 推荐使用UTF-8
解码: Class URLDecoder
static String decode(String s);
static String decode(String s, String enc);//enc 编码方式 推荐使用UTF-8
* Java中的编码解码方式和JS中的encodeURIComponent()/decodeURIComponent()方法是前后台通用的;两者在处理字符串的方式是没有区别的;
JS 和 Java 中URL特殊字符编码方式的更多相关文章
- java中URL 的编码和解码函数
java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascri ...
- js和java中URI的编码和解码
js中对文字进行编码主要有三个函数:escape,encodeURI,encodeURIComponent: 对应解码为:unescape,decodeURI,decodeURIComponent 这 ...
- java中的字符编码方式
1. 问题由来 面试的时候被问到了各种编码方式的区别,结果一脸懵逼,这个地方集中学习一下. 2. 几种字符编码的方式 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符 ...
- JAVA中默认的编码方式
转:http://blog.csdn.net/scyatcs/article/details/31356823 编码问题存在两个方面:JVM之内和JVM之外.1.Java文件编译后形成class这里J ...
- Java中url传递中文参数取值乱码的解决方法
java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作. 方法一: http://xxx.do?ptname=’我 ...
- Java中数组的初始化方式
Java中数组的初始化方式 初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...
- 原码,补码,反码的概念及Java中使用那种存储方式
原码,补码,反码的概念及Java中使用那种存储方式: 原码:原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示 补码:机器数的补码可由原码得到.如果机器 ...
- php CI框架中URL特殊字符处理与SQL注入隐患
php CI框架中URL特殊字符处理与SQL注入隐患 php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这 ...
- Java中实现线程的方式
Java中实现线程的方式 Java中实现多线程的方式的方式中最核心的就是 run()方法,不管何种方式其最终都是通过run()来运行. Java刚发布时也就是JDK 1.0版本提供了两种实现方式,一个 ...
随机推荐
- 电视直播用的.m3u8 PC端和移动端地址 【流媒体播放测试专用】
北邮ivi测试频道 26个高清频道 IPv4 有PC端和移动端地址 [复制链接] lebo 5 主题 0 好友 1588 积分 卫视少尉 UID 392347 注册时间 2013-11-8 最 ...
- Xcode 证书问题报错锦集
Xcode因为证书问题经常报的那些错 字数495 阅读13559 评论20 喜欢47 去年才开始做 iOS开发的时候,因为证书问题 Xcode 经常报这样或那样的错,经过一年多的实践,现在看见 Xco ...
- Codeforces 746D:Green and Black Tea(乱搞)
http://codeforces.com/contest/746/problem/D 题意:有n杯茶,a杯绿茶,b杯红茶,问怎么摆放才可以让不超过k杯茶连续摆放,如果不能就输出NO. 思路:首先,设 ...
- shareSDK集成步骤
按下面目录结构吧sdk的目录文件拷贝到自己的工程中 针对各个平台的分享格式,整理成了一个工具类,不同的平台分享的参数http://wiki.mob.com/不同平台分享内容的详细说明/ package ...
- Python中的变量、引用、拷贝和作用域
在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...
- Spring的BeanFactoryPostProcessor和BeanPostProcessor
转载:http://blog.csdn.net/caihaijiang/article/details/35552859 BeanFactoryPostProcessor和BeanPostProces ...
- uva 11417 - GCD
GCDInput: Standard Input Output: Standard Output Given the value of N, you will have to find the val ...
- 为Python添加默认模块搜索路径
方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\") 方法二:修改环境变量w用户可以修改系统环境变量PYTHONP ...
- UESTC 1256 昊昊爱运动 Map
昊昊爱运动 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 昊昊喜欢运动 他N天 ...
- c#调用cmd的ping命令
private static string CmdPing(string strIp) { Process p = new Process(); p.StartInfo.FileName = &quo ...