avascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。
escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此方法编码的字符:@ * / +
encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。
不会被此方法编码的字符:! * ( ) '
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
js代码
java 代码
备注:
用JS不编码,弹出50个字节,编码一次变成58个字节,服务端接收时不需要解码---即可直接获得正常显示的URL。
编码二次:变成66个字节,服务端接收时需要解码,才能看到明文。
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如空格的编码值是"%20"。
-
如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。
-
-
-
下表中列出了一些URL特殊符号及编码十六进制值
-
1.+URL中+号表示空格%2B
-
-
2.空格URL中的空格可以用+号或者编码%20
-
-
3./分隔目录和子目录%2F
-
-
4.?分隔实际的URL和参数%3F
-
-
5.%指定特殊字符%25
-
-
6.#表示书签%23
-
-
7.&URL中指定的参数间的分隔符%26
- 8.=URL中指定参数的值%3D
js在发送url请求带中文时会有乱码问题:
例如 var url="....do?method=init&name='中文'";
处理的方法是 对中文进行二次转码 encodeURI(encodeURI('中文')) 而我们通常只做一次转码发现还是不对。只能叹没有办法。
在接收方进行一次解码:
java.net.URLDecoder static String decode(String s, String enc)
s 为接收的字符串 enc 为要转的编码 utf-8 等
分享到:
相关推荐
如果不想在url中看到有明文,比如http://localhost:8080/template_1/login.action?user=张三 可以使用js的encodeURI的URLDecoder.decode一起使用一起来把url加密下 (1)JS在页面上把数据var val = encodeURI...
js中encode、decode的应用说明.docx
Turbo lte encode decode
在线protobuf编码/解码工具。 进入根目录,通过以下命令启动。 bower install serve
Video Encode and Decode GPU Support Matrix.xlsx
Encode_ Decode Tools URL编码解码工具
microsoft Mpeg4 V2 Encode and Decode
HDB3 ENCODE AND DECODE,详细设计与实现,参考一下下啊
base64_encode_decode.exe
小巧实用,支持ANSI和UTF-8编码和译码,web编程必备.
alfred-encode-decode-workflow, 将sting编码和解码为多个变体 编码/解码( 下载 v1.8 )将字符串编码和解码为多个变体。要求Alfred应用程序 v2 。安装点击下面的下载按钮双击以导入 Alfred 2查看工作流以添加自定义...
Encode_Decode_Tools_编码转换器 非常实用 方便!
DVI 1.0 encode and decode source code, write with verilog, with simulation project, synplify project and all soure code. They're have been running on xilinx spartan3A FPGA. Can be used in real project...
this program is a demo to encode, decode for PDF417 bar code.
netty encode decode ,测试可用,内涵amf3的encode和decode,还有String的encode和decode
介绍从RNN到Attention到Transformer系列中Decode-Encode(Seq2Seq) https://blog.csdn.net/qq_39707285/article/details/124726403
Python字符串的encode与decode研究.pdf
jpeg 编码解码,用c/c++实现,读取bmp文件,压缩成为jpeg文件,再从jpeg文件解码为bmp文件
bch decode and encode including simple description info.
hal_encode_decode_h264_h265.rar