Android中常用的编码和解码(加密和解密)的问题
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中常用的编码和解码(加密和解密)的问题相关推荐
- Android中常用的加密方式
Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...
- 【Android 安装包优化】WebP 应用 ( Android 中使用 libwebp.so 库解码 WebP 图片 )
文章目录 一.Android 中使用 libwebp.so 库解码 WebP 图片 二.完整代码示例 三.参考资料 一.Android 中使用 libwebp.so 库解码 WebP 图片 libwe ...
- android中常用的快捷键
2019独角兽企业重金招聘Python工程师标准>>> android中常用的快捷键 Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/ 块注释/销注释/ ...
- php编码 js解码,浅谈php和js中json的编码和解码
php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...
- java中链式调用_Java及Android中常用链式调用写法简单示例
本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...
- python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...
Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...
- java调用android_Java及Android中常用链式调用写法简单示例
本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...
- python中的URL编码和解码
python中的URL编码和解码:test.py 1 # 引入urllib的request模块 2 import urllib.request 3 4 url = 'https://www.douba ...
- Android中常用的设计模式
一:参考文档 先介绍参考文档(或许我们更容易明白):另记录本人可参考 QQ15 MobileSafe 两个Demo 有哪些在实际 Android 项目中用到的设计模式? Android开发中常见的设计 ...
最新文章
- Solarium简易使用
- mysql踢掉登录用户_centos 强制踢掉某登录用户的方法
- Vue——Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案
- 利用caffe的python接口实现DeepImageSynthesis实例
- React基础语法学习
- 初学编程,你必须要打牢的几根“支柱”,地基越稳,成就越高!
- [swift] LeetCode 96. Unique Binary Search Trees
- LuoguP2764 最小路径覆盖问题(最大流)
- java 爬取微信公众号文章 - 搜狗微信搜索
- win7系统电脑连接小米蓝牙音箱
- 电子信息技术专业名词中英文对照(二)
- SpringBoot 快速入门
- 渗透测试报告模板_网站安全测试报告模板该如何写
- 加权移动平均法 java_加权平均和移动平均
- H5抽奖十二宫格声音问题
- 何为裂变?上百个裂变营销活动让我揭开了其神秘面目!
- gltf模型浏览器_腾讯硬核干货!如何在页面极速渲染3D模型
- Swift语言难度大吗?适不适合零基础学习?
- 20180826 猿题库笔试题
- 车牌识别定位 matlab基本方法和操作