Android 中URLEncoder编码器和URLDecoder解码器的使用!

xiaoxiao2021-03-01  31

一、【说明:为什么要进行URLEncoder编码?】

通常我们客服端在进行网络请求的时候,网址中会出现非ASCll码中的字段,比如说常有的中文、?、&等特殊字符,如果将这些字符直接向前到网址中访问是会出现错误的,那么这样就要借助URLEncoder对特殊字符进行编码操作了,它可以将特殊字符转换为可以正常传输的字符。

*附加一张ASCll码表供参考:

二、编码规则

在编码的时候,保留所有英文字母,数字,以及特定的字符,(这些字符全部都是ASCII中的),除此之外将会转换为十六进制标识,并且在每一个十六进制之前加上%,内容中的' '空格,全部采用加号+替换

例如:

0x666——> 通过URLEncoder编码器编码为——>f6

赵日天?&?——> 通过URLEncoder编码器编码为——>赵日天?&?

三、一般在哪里会用到解码器呢?

通常我们在进行网络请求的时候,如get请求,和post请求中的键值对(key,value),网址中出现中文情况等在提交前都要进行URLEncoder转码操作!

四、代码中实现【抽取一个工具类,随时可以调用】

①——比较简单,就直接上代码了!

public class URLEncodeing { /** * URLEncoder编码 */ public static String toURLEncoded(String paramString) { if (paramString == null || paramString.equals("")) { return ""; } try { String str = new String(paramString.getBytes(), "UTF-8"); str = URLEncoder.encode(str, "UTF-8"); return str; } catch (Exception localException) { } return ""; } /** * URLDecoder解码 */ public static String toURLDecoder(String paramString) { if (paramString == null || paramString.equals("")) { return ""; } try { String url = new String(paramString.getBytes(), "UTF-8"); url = URLDecoder.decode(url, "UTF-8"); return url; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return ""; } }

②——来用一个小demo验证下效果:

String name = "赵日天?&?"; //进行URLEncoder转码 String n = URLEncodeing.toURLEncoded(name); Log.i("URLEncoded", "编码后的结果: " + n); //进行URLDecoder解码 String s = URLEncodeing.toURLDecoder(n); Log.i("URLDecoder", "解码后的结果: " + s);

③——我们来看看打印的日志:

I/URLEncoded: 编码后的结果: 赵日天?&?

I/URLDecoder: 解码后的结果: 赵日天?&?

可以看到,编码前属性为:赵日天?&?

通过编码器转码后得到了:赵日天?&?

我们在通过解码器解码得到以前的属性:赵日天?&?

转载请注明原文地址: https://www.6miu.com/read-3200113.html

最新回复(0)