java中編碼問題的處理方案
更新時間:2015年07月08日 10:22:06 投稿:hebedich
這篇文章主要介紹了java中編碼問題的處理方案的相關(guān)資料,需要的朋友可以參考下
首先我使用的開發(fā)環(huán)境是Eclipse.創(chuàng)建一個Java Project默認的編碼則為GBK,如圖:

下面便是具體代碼:
import java.io.UnsupportedEncodingException;
public class Demo1 {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "我愛ABC";
byte[] bytes1 = s.getBytes("gbk");//不寫編碼,則使用平臺的默認字符集將此 String 編碼為 byte序列,并返回byte[].
//s.getBytes(Charset charset) 使用給定的charset將此String編碼到byte序列;
//返回的是一個byte[]字節(jié)數(shù)組
for(byte b: bytes1){
System.out.print(Integer.toHexString(b&0xff)+" ");
//Integer.toHexString(int i)以十六進制(基數(shù) 16)無符號整數(shù)形式返回一個整數(shù)參數(shù)的字符串表示形式
}
//gbk編碼中文占有兩個字節(jié),英文占有一個字節(jié)
System.out.println();
byte[] bytes2 = s.getBytes("utf-8");
for(byte b: bytes2){
System.out.print(Integer.toHexString(b&0xff)+" ");
}
//utf-8編碼 中文占有三個字節(jié),英文占有一個字節(jié)
System.out.println();
//java是雙字節(jié)編碼 --->utf-16be >> 中文和英文都占有兩個字節(jié)
byte[] bytes3 = s.getBytes("utf-16be");
for(byte b: bytes3){
System.out.print(Integer.toHexString(b&0xff)+" ");
}
/*當(dāng)你的字節(jié)序列是某種編碼時,這個時候想把字節(jié)序列變成
*字符串,也需要用這種編碼方式,否則會出現(xiàn)亂碼
* */
System.out.println();
String str1 = new String(bytes3);//用項目默認的編碼即(GBK編碼) ----->> bytes3在上面定義成“utf-16be”的編碼了,所以會出現(xiàn)亂碼
System.out.println(str1);
System.out.println();
String str2 = new String(bytes3,"utf-16be");
System.out.println(str2);
/*
* 文本文件就是字節(jié)序列
* 可以是任意編碼的字節(jié)序列
* 如果我們在中文機器上直接創(chuàng)建文本文件,那么該文本文件只認識ansi編碼
*
*/
}
}
打印的結(jié)果:

總的來說,編碼必須對應(yīng),不然會出現(xiàn)亂碼。
您可能感興趣的文章:
- 深入解析Java中的編碼轉(zhuǎn)換以及編碼和解碼操作
- JAVA及相關(guān)字符集編碼問題研究分享
- 簡潔實用的Java Base64編碼加密異常處理類代碼
- java自動根據(jù)文件內(nèi)容的編碼來讀取避免亂碼
- java實現(xiàn)哈弗曼編碼與反編碼實例分享(哈弗曼算法)
- Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼
- 編碼實現(xiàn)從無序鏈表中移除重復(fù)項(C和JAVA實例)
- 解析關(guān)于java,php以及html的所有文件編碼與亂碼的處理方法匯總
- Java反轉(zhuǎn)字符串和相關(guān)字符編碼的問題解決
- 基于Java字符編碼的使用詳解
- Java在web頁面上的編碼解碼處理及中文URL亂碼解決
相關(guān)文章
一場由Java中Integer引發(fā)的踩坑實戰(zhàn)
Java中的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型int是前者而integer是后者(也就是一個類),下面這篇文章主要給大家介紹了關(guān)于由Java中Integer引發(fā)的踩坑實戰(zhàn),需要的朋友可以參考下2022-11-11
Java實現(xiàn)爬蟲給App提供數(shù)據(jù)(Jsoup 網(wǎng)絡(luò)爬蟲)
這篇文章主要介紹了Java實現(xiàn)爬蟲給App提供數(shù)據(jù),即Jsoup 網(wǎng)絡(luò)爬蟲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01
mybatis-puls中的resultMap數(shù)據(jù)映射
這篇文章主要介紹了mybatis-puls中的resultMap數(shù)據(jù)映射,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java 實戰(zhàn)項目之在線點餐系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個在線點餐系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
emoji表情與unicode編碼互轉(zhuǎn)的實現(xiàn)(JS,JAVA,C#)
這篇文章主要介紹了emoji表情與unicode編碼互轉(zhuǎn)的實現(xiàn)(JS,JAVA,C#),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

