java的utfgbk
Ⅰ 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中如何把utf-8轉化成gbk
java中把utf-8轉化成gbk:
①選中要改變編碼的項目或文件,滑鼠右擊,選擇【properties】。
Ⅲ 關於java編程的GBK和UTF-8字元集問題
你用javac -encoding UTF-8 Exerc02.java能正常輸出, 說明你的java文件的編碼是utf8
你用javac Exerc02.java編譯出錯, 說明你的系統默認編碼不是utf8
推測你應該是window系統吧
記事本打開Exerc02.java文件, 文件另存為-->選擇編碼ANSI保存
然後javac Exerc02.java就可以編譯了
Ⅳ 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 怎麼判斷編碼是utf-8 還是gbk
你是要判斷字元還是判斷文件的編碼,若是字元:
String
str="123456";
String
type
=
"utf-8";
//更換這里進行其他編碼判斷
try
{
if
(str.equals(new
String(str.getBytes(type
),
type
)))
{
return
type;
}
}
catch
(Exception
e)
{
}
如果是文件,麻煩一些,可以使用一個開源項目cpdetector,這個我也沒用過,你自己查一下吧
Ⅵ java工程是utf-8,工程里引入的文件是gbk編碼存儲的,怎麼讀不亂碼
修改編碼格式:
方法一:
workspace工作間編碼設置好了,當前workspace下創建的所有項目默認使用設置的編碼,創建新的workspace工作間:
菜單「Window——>Preferences——>General——>Workspace」,默認Workspace使用GBK編碼,在右邊欄嘩滲中選擇「Other」,笑蘆槐設置一種編碼,比如:UTF-8(推薦)
方法二:
如果當前工作間設置了UTF-8編碼,導入的項目使用的是GBK編碼,需要額外指定項目的編碼為:GBK。點擊項目,滑鼠右鍵「Properties——>碰友Resource」,選擇「Other」選項,指定編碼為GBK
Ⅶ 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 中文亂碼問題 utf-8和gbk的區別
Java中UTF-8轉GBK之所以不會出現中文亂碼,是因為UTF-8編碼為兼容性最大的字元集編碼,它本身就支持中文字元。
Java代碼轉碼範例:
String s = new String(ss.getBytes(),"GBK");
當你的內容本來就是正常的中文字元時,通過上面的語句轉為GBK編碼是不會有任何問題的,但如果你在轉碼之前的字元不是正確的中文字元,或者不是支持中文字元的字元集,那可能就會出現亂碼問題。
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。UTF-8用1到6個位元組編碼UNICODE字元。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
在Java開發中,特別是web開發,亂碼是一種很常見而且很頭疼的問題,這常常是由於頁面端、服務端、資料庫等幾處所使用的字元不一致所致,故開發中,保持編碼一致, 往往能減少由於亂碼而帶來的時間浪費,是一件非常重要的事情。
Ⅸ java 中文亂碼問題 utf-8和gbk的區別
這其中存在一個轉換問題:
如System.out.println(new String("中國".getBytes("gbk"), "utf-8"));
System.out.println(new String("中國".getBytes("utf-8"), "gbk"));
//將「中國「的gbk編碼格式按著utf-8解析,或者反過來都會出現亂碼。
如瀏覽器當前為gbk編碼,就以gbk編碼格式來提交。 這本身是不會出現亂碼的,問題就出在Web伺服器接收數據的凳褲時候,HttpServletRequest在將客戶端傳來的數據轉掘消成ucs2碼上出了問題。在默認情況下,是按著iso-8859-1編碼格式來轉的,而這種編碼格式並不支持中文棗散簡,所以也就無法正常顯示中文了,解決這個
問題的方法是用和客戶端瀏覽器當前編碼格式一致的編碼來轉換,如果是utf-8,則在doPost方法中應該用以下的語句來處理:
request.setCharacterEncoding("utf-8");
Ⅹ 為什麼java的默認編碼不是utf-8 而是gbk
因為系統是中文語言的,得到的是GBK編碼,所以肯定不是utf的。
工具:
win7
jdk
方法:
在計算機上右鍵選擇屬性