Java IO流 文件的編碼實例代碼
更新時間:2017年05月06日 09:41:29 作者:tianxintian22
本文通過實例代碼給大家介紹了java io流文件編碼的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
•文件的編碼
package cn.test;
import java.io.UnsupportedEncodingException;
public class Demo15 {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "你好ABC123";
byte[] b1 = str.getBytes();//轉換成字節(jié)系列用的是項目默認的編碼
for (byte b : b1) {
//把字節(jié)(轉換成了int)以十六進制方式顯示
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println("");
//utf8編碼,中文占用3個字節(jié),英文和數(shù)字占用1個字節(jié)
byte[] b2 = str.getBytes("utf8");
for (byte b : b2) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println("");
//gbk編碼,中文占用兩個字節(jié),英文和數(shù)字占用1個字節(jié)
byte[] b3 = str.getBytes("gbk");
for (byte b : b3) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println("");
//java是雙字節(jié)編碼 utf-16be
//utf-16be編碼,中文占2個字節(jié),英文和數(shù)字也占用2個字節(jié)
byte[] b4 = str.getBytes("utf-16be");
for (byte b : b4) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println("");
//當字節(jié)序列是某種編碼時,這時候想把字節(jié)序列變成字符串,也需要用這種編碼方式,否則會出現(xiàn)亂碼
String str1 = new String(b4);//使用項目默認的編碼
System.out.println(str1);
String str2 = new String(b4, "utf-16be");
System.out.println(str2);
}
}
執(zhí)行結果:
e4 bd a0 e5 a5 bd 41 42 43 31 32 33 e4 bd a0 e5 a5 bd 41 42 43 31 32 33 c4 e3 ba c3 41 42 43 31 32 33 4f 60 59 7d 0 41 0 42 0 43 0 31 0 32 0 33 O`Y}ABC123 你好ABC123
文件就是字節(jié)序列,可以是任意編碼的字節(jié)序列。
如果我們在中文機器上直接創(chuàng)建文本文件,那么該文本文件只認識ansi編碼(中文系統(tǒng)下,ansi編碼代表gbk編碼)
好了,以上所述是小編給大家介紹的Java IO流 文件的編碼的實例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關文章
SpringBoot整合mybatis通用Mapper+自定義通用Mapper方法解析
這篇文章主要介紹了SpringBoot整合mybatis通用Mapper+自定義通用Mapper方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
讓Java后臺MySQL數(shù)據(jù)庫能夠支持emoji表情的方法
最近開發(fā)的iOS項目因為需要用戶文本的存儲,自然就遇到了emoji等表情符號如何被mysql DB支持的問題。下面這篇文章主要介紹了關于讓Java后臺MySQL數(shù)據(jù)庫能夠支持emoji表情的方法,需要的朋友可以參考下。2017-03-03
Java程序連接數(shù)據(jù)庫的常用的類和接口介紹
這篇文章主要介紹了Java程序連接數(shù)據(jù)庫的常用的類和接口,包括Connection類和Statement類等,需要的朋友可以參考下2015-10-10

