javagb2312
① java怎麼把utf-8的字元串轉換為gb2312格式
Java中字元串轉碼,根據實際運用的環境有以下三種方式
1、使用Java.lang.String
這是最常用的方法,先用對應編碼獲取位元組,然後重新構造新編碼,示例代碼如下:
Strings="清山";
byte[]b=s.getBytes("utf-8");//編碼
Stringsa=newString(b,"gb2312");//解碼:用什麼字元集編碼就用什麼字元集解碼
2、java.io.InputStreamReader/OutputStreamWriter:橋轉換
讀寫文件的應用中,可以使用這種方式,直接在IO流構造中轉換,示例代碼如下:
InputStreamis=newFileInputStream("C:/項目進度跟蹤.txt");//文件讀取
InputStreamReaderisr=newInputStreamReader(is,"utf-8");//解碼
OutputStreamos=newFileOutputStream("C:/項目進度跟蹤_gb2312.txt");//文件輸出
OutputStreamWriterosw=newOutputStreamWriter(os,"gb2312");//開始編碼
3、java.nio.Charset
使用nio中的Charset轉換字元,示例代碼如下:
CharsetinSet=Charset.forName("utf-8");//解碼字元集
CharsetoutSet=Charset.forName("gb2312");//編碼字元集
CharsetDecoderde=inSet.newDecoder();//解碼器
CharsetEncoderen=outSet.newEncoder();//編碼
② java中怎樣將GB2312的中文轉換成utf-8編碼
String tempStr="中文";//准備轉換的字元
String result=new String(tempStr.getBytes("GB2312"),"UTF-8");//轉換後的結果
③ Java怎麼將字元串轉換為GB2312原編碼
@Test
publicvoidtest333(){
Stringa="青白";
try{
byte[]b=a.getBytes("GB2312");
System.out.println(bytesToHexFun1(b));
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
//將byte數組轉成16進制字元串
(byte[]bytes){
char[]HEX_CHAR={'0','1','2','3','4','5',
'6','7','8','9','a','b','c','d','e','f'};
//一個byte為8位,可用兩個十六進制位標識
char[]buf=newchar[bytes.length*2];
inta=0;
intindex=0;
for(byteb:bytes){//使用除與取余進行轉換
if(b<0){
a=256+b;
}else{
a=b;
}
buf[index++]=HEX_CHAR[a/16];
buf[index++]=HEX_CHAR[a%16];
}
returnnewString(buf);
}
中心思想就是先轉成GB2312的byte數組,再轉成16進制就可以了。
④ java 怎麼把gb2312編碼的中文轉換成utf-8不出現亂碼
爬蟲的話,爬到GB2312網頁的話,得到的位元組流已經是GB2312編碼了。
直接new String(bytes,"GB2312)即可了。
輸出時,通過stream對象指定UTF-8編碼輸出就行了。
⑤ java中介面編碼格式為gb2312的,但是我們實現的類用的是utf-8的,之間怎麼轉換格式
看你的來源是什麼編碼 如果來源是gb2312 要轉成utf-8
那麼就是 String s1 = new String( s.getBytes("ISO8859-1"),"UTF-8" ) ;
⑥ 怎麼將java代碼的編碼方式設置為gb2312
將文件打開。另存為,然後下面會出現一個編碼格式,自己選擇GB2312即可,不過記事本方式是沒gb2312的,找個EditPlus或者其他的文本工具,裡面就有GB2312
可以選擇,或者在myeclipse裡面右鍵文件,點最底下的選擇進去也有一個更換格式的,不過更換了中文會亂碼得重新寫
⑦ Java對GB2312編碼與字元串轉換
getBytes("gb2312") 得到byte[] 數組。
反過來: String s = new String(bytes, "gb2312")
⑧ 請問java是用utf-8編碼還是用GB2312編碼的
XML默認是utf-8..一般做中文網站都可以用gb2312 gbk utf-8 gb18030 都得..要看是咩資料庫..同咩伺服器..用tomcat最好就utf-8啦..mysql都是..utf-8會好地..utf-8用起來會好用地..如果吾是..地咩亂碼問題會出來噶..不過..有個過濾器就吾怕啦..
⑨ java 怎麼 讓 text 輸出 不亂碼 new String(text.getBytes("GB2312"))
上面的代碼相當於將text從GB2312的編碼轉換為默認編碼。
new String(byte[]) 相當於:new String(byte[], defaultCharset),
而默認編碼是通過:
System.getProperty("file.encoding")
獲取到的。
這個參數要麼通過啟動java程序的時候通過vm參數提供(Eclipse通過配置默認編碼可以自動帶入,myeclipse的普通程序也可以,如果是老版本myeclipse的Tomcat即使配置了默認編碼也不行,編碼還是GBK(Windows操作系統)),如果是linux系統,可以通過配置LANG環境變數來定義編碼。
而java的內部編碼都是utf8的,如果要讓上面的輸出不亂碼那麼可以:
1、讓控制台以GBK編碼查看,Eclipse的程序的啟動配置中可以修改
2、讓text先從默認編碼轉換為GB2312,然後上面的代碼再將其從GB2312轉換為默認編碼,此時剛好可以不亂碼。
⑩ java怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串
通過JDK1.6知道String類中getBytes(」編碼「)方法可以講一個數用指定的編碼轉成一個位元組數組,String中通過指定的 charset解碼指定的 byte 數組,構造一個新的String。代碼如下:
try{
String s = "java學習";
System.out.println(s);
String result = new String(s.getBytes("GB2312"),"iso-8859-1");
System.out.println(s);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(10)javagb2312擴展閱讀:
getBytes() 方法有兩種形式:
1、getBytes(String charsetName):使用指定的字元集將字元串編碼為 byte 序列,並將結果存儲到一個新的 byte 數組中。
2、getBytes():使用平台的默認字元集將字元串編碼為 byte 序列,並將結果存儲到一個新的 byte 數組中。
參考資料:
網路-getBytes()