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     }

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     }

时间: 2024-12-20 15:24:38

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

Python中进行Base64编码和解码

Base64编码是一种“防君子不防小人”的编码方式.广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合Python中进行Base64编码和解码>>> import base64>>> s = '我是字符串'>>> a = base64.b64encode(s)>>>

Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

package com.android.filebrowser; import java.io.*; import java.net.*; public class FileEncodingDetect { static final int GB2312 = 0; static final int ASCII = 1; static final int UTF8 = 2; static final int UNICODE = 3; //static final int GBK = 4; //st

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

iOS URL中汉字的编码和解码

发现NSString类中有内置的方法可以实现.他们分别是: - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding 只要传入相应的编码即可以进行编码和解码了,不过此方法是对整个Url进行编码的所以如果有Query Str

java中URL 的编码和解码函数

java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascript 中URL 的编码和解码函数escape(String s)和unescape(String s) ; 在前台:var url="test.jsp?param="+escape('this%is#te=st&o k?+/');在后台: String param=request.

android中常用的弹出提示框

转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有

Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(二)

Intent intent = getIntent(); String contentUri = null; Uri uri =null; if (intent.getData() != null) { uri = intent.getData(); contentUri = "file".equals(uri.getScheme()) ? FileContentProvider.BASE_URI + uri.getEncodedPath() : uri.toString(); Str

Android中常用的工具类01

1.图片和视频缩略图工具类 import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.ThumbnailUtils; /** * 缩略图生成工具类 * @author * */ public class ThumbnailGenerateUtils { private ThumbnailGenerateUtils(){}; /** * 根据指定的图像路径和大小来获取缩略图

Android中常用的工具类02

1.读取手机联系人信息 一般用在读取手机通讯录上传,这一块比较多. import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Phon