编码,解码:
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class MainActivity extends AppCompatActivity {
private EditText txtContent;
private EditText txtPassword;
private EditText txtResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtContent = (EditText) findViewById(R.id.txt_content);
txtPassword = (EditText) findViewById(R.id.txt_password);
txtResult = (EditText) findViewById(R.id.txt_result);
gzipTest();
}
private void gzipTest() {
FileOutputStream fout = null;
GZIPOutputStream gzipOutputStream = null;
File directory = Environment.getExternalStorageDirectory();
File file = new File(directory, "myself.gz"); // GZIP 压缩的文件通常都是 .gz 结尾
PrintStream ps = null;
try {
fout = new FileOutputStream(file);
gzipOutputStream = new GZIPOutputStream(fout);
ps = new PrintStream(gzipOutputStream);
for (int i = 0; i < 100; i++) {
ps.println("Hello World by GZIPOutputStream");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (gzipOutputStream != null) {
try {
gzipOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fout != null) {
try {
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void urlEncodingTest() {
// 将非网址字符串,转换为 %XX 这种显示形式;
try {
String encode = URLEncoder.encode("变形金刚", "UTF-8");// 参数2 必须和服务器支持的编码一致;
Log.d("MainActivity", "urlEncoding => " + encode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
// 解码部分,用于将 编码的内容还原为 实际内容,注意第二个参数的问题
// 需要和编码一致;
String decode = URLDecoder.decode("%E5%8F%98%E5%BD%A2%E9%87%91%E5%88%9A", "UTF-8");
Log.d("MainActivity", "urlDecode => " + decode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
String encode = URLEncoder.encode("I Love Android !!! 张哥. ", "UTF-8");
Log.d("MainActivity", "中文英文 " + encode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private void hexTest() {
String s = null;
try {
s = CryptUtil.hexEncode("你好".getBytes("GBK"));
Log.d("MainActivity", "你好 hex = " + s);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private void base64Test() {
String str =
Base64.encodeToString("你".getBytes(), Base64.NO_WRAP);
Log.d("MainActivity", "Base64 编码的 你 = " + str);
str =
Base64.encodeToString("好".getBytes(), Base64.NO_WRAP);
Log.d("MainActivity", "Base64 编码的 好 = " + str);
str =
Base64.encodeToString("你好".getBytes(), Base64.NO_WRAP);
Lo