Java GBK,UTF-8編碼,javagbkutf-8編碼
作者:卿篤軍
原文地址:http://blog.csdn.net/qingdujun/article/details/41366301
1、GBK,UTF-8編碼
注意:一般預設的是GBK編碼。
package io.dol.sn;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;public class EnCodeStream {public static void main(String[] args) throws IOException {//WriteGBK();WriteUTF_8();}public static void WriteGBK() throws IOException{//預設是GBK編碼OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"));//OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("UTF_8.txt","GBK"));//注意,此時產生的gbk.txt檔案大小為4位元組osw.write("海豚");osw.close();}public static void WriteUTF_8() throws IOException{//預設是GBK編碼OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("UTF_8.txt"),"UTF-8");//注意,此時產生的UTF_8.txt檔案大小為6位元組osw.write("海豚");osw.close();}}
2、編碼解碼
用什麼格式編碼,就用什麼格式解碼;編碼一次,解碼一次。
package io.dol.sn;import java.io.IOException;import java.util.Arrays;public class EnCodeStream {public static void main(String[] args) throws IOException {String s1 = "海豚";//編碼://以下一樣,因為預設就是GBK編碼byte[] bGbk1 = s1.getBytes();byte[] bGbk2 = s1.getBytes("GBK");//Arrays.toString()將字元數組轉化為字串System.out.println(Arrays.toString(bGbk1));System.out.println(Arrays.toString(bGbk2));//解碼:String s2 = new String(bGbk1);String s3 = new String(bGbk2,"GBK");//如果用UTF-8解碼,則會出現解碼格式錯誤//String s4 = new String(bGbk2,"UTF-8");System.out.println(s2);System.out.println(s3);//這裡會列印出“????”//System.out.println(s4);}}
3、GBK,UTF-8都支援中文編碼
有興趣的可以去試一下:在記事本中寫入“聯通”二字,儲存後再開啟會出現什麼現象,為什麼呢?
原文地址:http://blog.csdn.net/qingdujun/article/details/41366301
參考文獻:Java視頻 畢向東 主講