1. URL Encoding 

  

编码目的是为了在⺴址上可以包含中文等特殊字符
解码是为了把编码后的内容还原成原始的内容
格式如下%9C%3C%F3%98 规则: %hex_byte
就是将实际的字节转换为十六进制进行显示
编码URLEncoder.encode(String str, String charset)
解码 URLDecoder.encode(String str, String charset)

eg.    %E6%88%91%E6%98%AFvhly%EF%BC%8C%E4%BD%A0%E6%98%AF%E8%B0%81%3F 该字符串代表什么内容?

 1  @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_main);
 5
 6         /**  解码演示 */
 7
 8         //解码之前的字符串
 9         String str1= " %E6%88%91%E6%98%AFvhly%EF%BC%8C%E4%BD%A0%E6%98%AF%E8%B0%81%3F";
10         //解码之后的字符串
11         try {
12             String str2= URLDecoder.decode(str1,"UTF-8");
13             Log.v("TAG", "str2="+str2); //str2= 我是vhly,你是谁?
14
15         } catch (UnsupportedEncodingException e) {
16             // TODO Auto-generated catch block
17             e.printStackTrace();
18         }
19
20         /** 编码演示*/
21         String str3 = "It's Don!";
22         try {
23             String str4 = URLEncoder.encode(str3, "UTF-8");
24             Log.v("TAG", "str4="+str4); //str4=It%27s+Don%21
25
26         } catch (UnsupportedEncodingException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         }
30
31     }

View Code

2.Base64

包含大小写英文字母,10个数字,以及= + 的编码格式

1.Base64能够把二进制的文件转换为文本文件
2.把整个内容全部转换为可以显⽰的字符串
3.包含编码和解码,主要⽤于客户端与服务器传图⽚
4.编码android.util.Base64.encodeToString(byte[], int)
5.解码android.util.Base64.decode(String, int)

常见的编解码工具

Android 自带 android.util.Base64
   Apache Common Codec 类库 Base64

eg. 5L2g5piv6LCBPw== 这个字符串的内容是什么?

 1 import java.net.URLDecoder;
 2 import java.net.URLEncoder;
 3
 4 import android.util.Base64;
 5 @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9
10         /**  解码演示 */
11
12         //解码之前的字符串
13         String str1= "5L2g5piv6LCBPw==";
14         //解码之后的字符串
15         try {
16             byte[] bytes = Base64.decode(str1, Base64.NO_WRAP);
17             String str2= new String(bytes,"UTF-8");
18             Log.v("TAG", "str2="+str2); //str2=你是谁?
19
20
21         } catch (UnsupportedEncodingException e) {
22             e.printStackTrace();
23         }
24
25         /** 编码演示*/
26         String str3 = "I love Android!";
27         try {
28             String str4 = Base64.encodeToString(str3.getBytes("UTF-8"), Base64.NO_WRAP);
29             Log.v("TAG", "str4="+str4); // str4=SSBsb3ZlIEFuZHJvaWQh
30
31         } catch (UnsupportedEncodingException e) {
32             // TODO Auto-generated catch block
33             e.printStackTrace();
34         }
35
36     }

View Code

转载于:https://www.cnblogs.com/d-on/p/4115600.html

Android中常用的编码和解码(加密和解密)的问题相关推荐

  1. Android中常用的加密方式

    Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...

  2. 【Android 安装包优化】WebP 应用 ( Android 中使用 libwebp.so 库解码 WebP 图片 )

    文章目录 一.Android 中使用 libwebp.so 库解码 WebP 图片 二.完整代码示例 三.参考资料 一.Android 中使用 libwebp.so 库解码 WebP 图片 libwe ...

  3. android中常用的快捷键

    2019独角兽企业重金招聘Python工程师标准>>> android中常用的快捷键 Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/  块注释/销注释/ ...

  4. php编码 js解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...

  5. java中链式调用_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  6. python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...

    Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...

  7. java调用android_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  8. python中的URL编码和解码

    python中的URL编码和解码:test.py 1 # 引入urllib的request模块 2 import urllib.request 3 4 url = 'https://www.douba ...

  9. Android中常用的设计模式

    一:参考文档 先介绍参考文档(或许我们更容易明白):另记录本人可参考 QQ15 MobileSafe 两个Demo 有哪些在实际 Android 项目中用到的设计模式? Android开发中常见的设计 ...

最新文章

  1. Solarium简易使用
  2. mysql踢掉登录用户_centos 强制踢掉某登录用户的方法
  3. Vue——Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案
  4. 利用caffe的python接口实现DeepImageSynthesis实例
  5. React基础语法学习
  6. 初学编程,你必须要打牢的几根“支柱”,地基越稳,成就越高!
  7. [swift] LeetCode 96. Unique Binary Search Trees
  8. LuoguP2764 最小路径覆盖问题(最大流)
  9. java 爬取微信公众号文章 - 搜狗微信搜索
  10. win7系统电脑连接小米蓝牙音箱
  11. 电子信息技术专业名词中英文对照(二)
  12. SpringBoot 快速入门
  13. 渗透测试报告模板_网站安全测试报告模板该如何写
  14. 加权移动平均法 java_加权平均和移动平均
  15. H5抽奖十二宫格声音问题
  16. 何为裂变?上百个裂变营销活动让我揭开了其神秘面目!
  17. gltf模型浏览器_腾讯硬核干货!如何在页面极速渲染3D模型
  18. Swift语言难度大吗?适不适合零基础学习?
  19. 20180826 猿题库笔试题
  20. 车牌识别定位 matlab基本方法和操作

热门文章

  1. 从针对接口编程到依赖注入
  2. Java动态调用方法
  3. 自己归纳整理的ARM THUMB指令机器码表
  4. 实例讲解UML建模分析与设计
  5. 结构体相互嵌套使用的条件?
  6. 常考数据结构和算法:跳台阶
  7. 数据结构:回溯--解决八皇后问题
  8. linux: 查找文件
  9. Windows,远程计算机:X.X.X.X,这可能是由于CredSSP加密Oracle修正
  10. 基本套接字总结(@function)