Rom*_*'ai 2 javascript java encoding android
我试图澄清Java的区别URLEncoder.encode(),JavaScript的encodeURI(),encodeURIComponent()和Android的Uri.encode()。
看起来像这样:
URLEncoder.encode() 编码,其他保留encodeURI() 保持,其他编码+为URLEncoder.encode(),%20为他人看起来URLEncoder.encode()和encodeURIComponent()行为都一样。我是对的,还是实际上它们也有一些区别?
有趣的问题。我只是运行了一些代码来对此进行测试:
encodeURI会转义所有字符,除了:
未逃脱:
A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
码:
var sb = [];
for(var i=0;i<256;++i)
{
var encoded = encodeURI(String.fromCharCode(i));
if(encoded.indexOf('%') !== 0 && !encoded.match(/^[a-zA-Z0-9]+$/))
{
sb.push(encoded);
}
}
alert(sb.join(' '));
Run Code Online (Sandbox Code Playgroud)
结果:
! # $ & ' ( ) * + , - . / : ; = ? @ _ ~
Run Code Online (Sandbox Code Playgroud)
encodeURIComponent会转义所有字符,除了:
未逃脱:
A-Z a-z 0-9 - _ . ! ~ * ' ( )
码:
var sb = [];
for(var i=0;i<256;++i)
{
var encoded = encodeURIComponent(String.fromCharCode(i));
if(encoded.indexOf('%') !== 0 && !encoded.match(/^[a-zA-Z0-9]+$/))
{
sb.push(encoded);
}
}
alert(sb.join(' '));
Run Code Online (Sandbox Code Playgroud)
结果:
! ' ( ) * - . _ ~
Run Code Online (Sandbox Code Playgroud)
使用特定的编码方案将字符串转换为application / x-www-form-urlencoded格式。此方法使用提供的编码方案来获取不安全字符的字节。
码:
public static void main(String[] args)
{
try
{
StringBuilder sb = new StringBuilder();
for(int i=0;i<256;++i)
{
String encoded = URLEncoder.encode(String.valueOf((char) i), "UTF-8");
if(!encoded.startsWith("%") && !encoded.matches("^[a-zA-Z0-9]+$"))
{
sb.append(' ').append(encoded);
}
}
System.out.println(sb.substring(1));
}
catch(Exception e){}
}
Run Code Online (Sandbox Code Playgroud)
结果:
请注意,+实际上是一个空格。
+ * - . _
Run Code Online (Sandbox Code Playgroud)
使用UTF-8方案将给定字符串中的字符编码为'%'转义的八位字节。保留字母(“ AZ”,“ az”),数字(“ 0-9”)和未保留的字符(“ _- !.〜'()*”)完整无缺。编码所有其他字符。
码:
try
{
StringBuilder sb = new StringBuilder();
for(int i=0;i<256;++i)
{
String encoded = Uri.encode(String.valueOf((char) i));
if(!encoded.startsWith("%") && !encoded.matches("^[a-zA-Z0-9]+$"))
{
sb.append(' ').append(encoded);
}
}
System.out.println(sb.substring(1));
}
catch(Exception e){}
Run Code Online (Sandbox Code Playgroud)
结果:
! ' ( ) * - . _ ~
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3510 次 |
| 最近记录: |