Java IO之编码和解码

package com.fish.other;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
/*
编码与解码 
 
编码: 把看得懂的字符变成看不懂码值这个过程我们称作为编码。
 
解码: 把码值查找对应的字符,我们把这个过程称作为解码。
注意: 以后编码与解码一般我们都使用统一的码表。否则非常容易出乱码。
 */
public class Demo7 {
    public static void main(String[] args) throws Exception {
        String str1 = "中国";
        
        byte[] buf1 = str1.getBytes("gbk");// 平台默认的编码表是gbk编码表。  编码
        System.out.println("数组的元素:"+Arrays.toString(buf1)); //
        str1 = new String(buf1,"utf-8");  //默认使用了gbk码表去解码。 
        System.out.println("解码后的字符串:"+ str1);
        String str2 = "a中国"; // ,0, 97, 78, 45, 86, -3
        
        byte[] buf3 = str2.getBytes("utf-16");  //编码与解码的时候指定 的码表是unicode实际上就是用了utf-16.
        System.out.println("数组的内容:"+ Arrays.toString(buf3));
        String str = "大家好";
        
        byte[] buf = str.getBytes(); //使用gbk进行编码
        System.out.println("字节数组:"+ Arrays.toString(buf));  // -76, -13, -68, -46, -70, -61
        str = new String(buf,"iso8859-1");
        
        // 出现乱码之后都可以被还原吗? 只有iso8859-1的乱码可以被还原
        byte[] buf2 = str.getBytes("iso8859-1");
        str = new String(buf2,"gbk"); 
        System.out.println(str);
    }
}

本文出自 “小鱼的博客” 博客,谢绝转载!

你可能感兴趣的:(ja)