① java中如何把GBK編碼的字元串轉成utf-8編碼
我先解釋一下我對你的問題的理解 :
你的問題有點籠統 可以這么理解兩個意思 : 一 ,你是想吧一個gbk編碼的字元串用utf-8格式來編碼
String s = new String ("全國".getBytes("GBK"),"GBK");
雖然這個時候的s是GBK編碼的 但是s還是中文字元的 所以 上面這位同胞用 new(s.getBytes("GBK"),"UTF-8")的方式肯定是錯的 應該用 String s1 = new String (s.getBytes("UTF-8"),"UTF-8") 這樣s1就是UTF-8編碼的字元串了
二,如果是遇見亂碼問題 比如 String s = new String ("全國".getBytes("GBK"),"GBK");
這樣的s就是gbk編碼的 現在你要把GBK格式的編碼用UTF-8去編碼 肯定就會出現亂碼
String s2 = new String(s.getBytes("GBK"),"UTF-8"); 這個s2肯定是亂碼的 而且這樣就根本解不出來了 系統出現的亂碼顯示的時候才會出現編碼錯誤 所以 一般出現亂碼 只要把輸入流換個編碼解析一下就ok了 還有什麼不明白 可以問我
② java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做
java中GBK編碼格式轉成UTF8編碼格式的方法如下:
publicstaticvoidmain(String[]args)throwsThrowable{
StringerrStr="errStr";
System.out.println(recover(errStr));
}
publicstaticStringrecover(Stringstr)throwsThrowable{
returnnewString(str.getBytes("GBK"),"UTF-8");
}
其中errStr就是亂碼字元串,按照相反的順序在編碼蘆喊(用gbk)、解碼(用utf-8)回去,就能得到正確的字元串.
GBK、UTF-8是一種「編碼格式」,是用來序列化或存儲「編號(數字含族)」的一種「格式」;GBK和UTF-8都是用來序列化或存儲unicode編碼的數據的,但是分別是2種不同的格式; 除了格式不一樣之外,所關談嘩弊心的unicode編碼范圍也不一樣,utf-8考慮了很多種不同國家的字元,涵蓋整個unicode碼表,所以其存儲一個字元的編碼的時候,使用的位元組長度也從1位元組到4位元組不等;而GBK只考慮中文——在unicode中的一小部分——的字元,的編碼,所以算好了只要2個位元組就能涵蓋到絕大多數常用中文(2個位元組能表示6w多種字元),所以存儲一個字元的時候,所用的位元組長度是固定的;
③ java怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串
將GB2312格式字元串變為ISO-8859-1需要用到中間輔助類byte[],原理是講字元串轉化成byte,然後將byte轉換成字元串同時轉碼,當然要注意異常的捕捉。
這個過程大致分為2個步驟:
將字元串轉換成byte[]。
將byte[]轉換成字元串,同時設置編碼格式為ISO-8859-1。
操作過程如下圖所示
④ java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做
讀文件的時候按照GBK讀,寫文件按照UTF8寫不就完了。