Ⅰ java編碼問題,GBK轉化為UTF-8
首先理解java的字元概念
java中字元串是字元的序列,虛擬機內部的字元都是16位的unicode字元,等價於C++中的WCHAR,也是為了實現虛擬機方便
WCHAR叫做寬字元,對應的MuitiChar叫做多字元,這種多字元中字元的位數不唯一
GBK 和 UTF8 是多字元的不同編碼形式
s=new String(s.getBytes("gbk"),"utf-8");
的意思是:
byte[] bytes=s.getBytes("gbk");
s=new String(bytes,"utf-8");
第一句是將s對應的gbk編碼轉出來,形成一個位元組流
第二句是將這個位元組流按照utf-8編碼轉為java字元串,因此相當於將gbk編碼的位元組流當做utf-8來使用,這樣在中文中會出現亂碼
你的問題是,介面返回的已經是utf-8 所以它必須是byte[] 流,如果是字元串的話就不好辦了
Ⅱ 請問,將java文件的格式進行轉換,由GBK編碼轉UTF-8
try{
Stringstr=newString("xx".getBytes("GBK"),"UTF-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
你可以試試看,希望能幫到你。
Ⅲ java 怎麼gbk轉碼utf-8
方法一:
思路:先轉為Unicode,然後轉為GBK
Stringutf8=newString(t.getBytes("UTF-8"));
System.out.println(utf8);
Stringunicode=newString(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
Stringgbk=newString(unicode.getBytes("GBK"));
System.out.println(gbk);
方法二:
publicstaticvoidmain(String[]args){
Stringstr="字元串編碼轉換";
try{
byte[]temp=str.getBytes("utf-8");//這里寫原編碼方式
byte[]newtemp=newString(temp,"utf-8").getBytes("gbk");//這里寫轉換後的編碼方式
StringnewStr=newString(newtemp,"gbk");//這里寫轉換後的編碼方式
System.out.println(newStr);
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
Ⅳ java utf 8轉gbk
utf8和gb2312本來就是兩個不同的字元集,對於中文來說,它們的編碼並不會相同。如果剛開始的字元是utf8的,那麼轉換為gb2312後自然會是亂碼;如果初始時是gb2312的中文,而後經utf8中間編碼後又從utf8轉為gb2312後不會是亂碼的。
我想是這樣的!
這有往篇文章,是關於java字元編碼相關的,講的很詳細,有代碼示例,你可以去看一下:http://vinter.javaeye.com/blog/670502
Ⅳ java怎麼把UTF-8字元串轉成GBK字元串
java不同編碼之間進行轉換,都需要使用unicode作為中轉。
以utf-8轉gbk為例,示例代碼如下:
Stringt="這是一個字元串aaa111";
Stringutf8=newString(t.getBytes("UTF-8"));
System.out.println(utf8);
Stringunicode=newString(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
Stringgbk=newString(unicode.getBytes("GBK"));
System.out.println(gbk);
Ⅵ java txt文件utf-8轉GBK的問題
步驟一:直接把文件備份。
步驟二:打開文件,選擇「另存為」。
步驟三:編碼格式從「UTF-8"切換到「GBK」(默認)。保存即可。
Ⅶ 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多種字元),所以存儲一個字元的時候,所用的位元組長度是固定的;