導航:首頁 > 編程語言 > javastringgbk

javastringgbk

發布時間:2023-03-10 21:01:50

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里關於String的編碼與解碼

從語言編碼的角度,getBytes(charset)不是解碼、也不是編碼,是轉換。API 說的是針對數據的角度。把一個整體的String分解成byte[]了。

byte[] b2=s.getBytes("gbk");
String ss=new String(b2,"utf-8");

從GBK轉換成UTF-8。

UTF8包含更多的文字量。

③ java中如何得到輸入的漢字的GBK編碼

/*
*Tochangethislicenseheader,.
*Tochangethistemplatefile,chooseTools|Templates
*andopenthetemplateintheeditor.
*/
packagecn.timecd.gyhhy.mscup;

importjava.io.UnsupportedEncodingException;
importjava.nio.charset.Charset;
importjava.util.Arrays;
importjava.util.logging.Level;
importjava.util.logging.Logger;

/**
*主要涉及到String類的getBytes方法
*@author32798
*/
publicclassTest{
publicstaticvoidmain(String[]args){
//預定義常量
Stringcharset="gbk";//編碼

//請注意,找不到編碼集的時候,下面這句代碼會拋出
//java.nio.charset.UnsupportedCharsetException
Charsetcharset$=Charset.forName(charset);//獲取編碼集
//只是閱讀:兩個變數名字比較,請注意區分
//charset
//charset$

//從string轉bytes
Stringstr="這是一個測試文本";
try{
//方法一:直接通過編碼集的名字轉碼
//需要try-catch
//當字元集找不到時會拋出java.io.UnsupportedEncodingException
System.out.println(Arrays.toString(str.getBytes(charset)));
}catch(){
Logger.getLogger(Test.class.getName()).log(Level.SEVERE,null,ex);
}
//方法二:通過編碼集(java.nio.charset.Charset)轉碼
//不需要try-catch
System.err.println(Arrays.toString(str.getBytes(charset$)));
try{
Thread.sleep(200);//只是為了讓ide能按順序輸出
}catch(InterruptedExceptionex){}

//從bytes轉string
//byte[]bytes={-78,-35,-60,-32,-62,-19};
byte[]bytes=str.getBytes(charset$);//只是為了獲取測試文本的gbk碼
System.out.print(" ");//隔出3行,免得跟之前的輸出混淆
try{
//方法一:通過編碼集名字新建一個string
//需要try-catch
//當字元集找不到時會拋出java.io.UnsupportedEncodingException
System.out.println(newString(bytes,charset));
}catch(){
Logger.getLogger(Test.class.getName()).log(Level.SEVERE,null,ex);
}
//方法二:直接通過字元集新建一個string
System.err.println(newString(bytes,charset$));
}
}

④ 為什麼java的默認編碼不是utf-8 而是gbk

因為系統是中文語言的,得到的是GBK編碼,所以肯定不是utf的。

工具:

win7

jdk

方法:

  1. 在計算機上右鍵選擇屬性

⑤ 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中如何把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了
還有什麼不明白
可以問我

閱讀全文

與javastringgbk相關的資料

熱點內容
php固定概率演算法 瀏覽:960
魔獸世界命令重置副本 瀏覽:994
基因組反編譯 瀏覽:154
貓抓老鼠圖形化編程考試 瀏覽:588
r語言編程基礎第五章課後題答案 瀏覽:167
linuxutf8withbom 瀏覽:440
什麼是伺服器配置與管理 瀏覽:156
如何保證伺服器硬碟數據安全 瀏覽:471
賬號出租用什麼app 瀏覽:222
電腦改伺服器需要什麼主板好 瀏覽:512
使用到的編譯器 瀏覽:351
鄞州百丈公園幼兒編程課 瀏覽:417
java實現介面繼承類 瀏覽:492
程序轉化為控制流圖需要編譯嗎 瀏覽:472
聯想彩信在哪個文件夾 瀏覽:462
編譯原理類c語言文法 瀏覽:988
centos時間同步命令 瀏覽:4
會計真賬實操pdf 瀏覽:342
文件加密重裝系統顯示沒有許可權 瀏覽:348
c編譯器怎麼放大字體 瀏覽:342