Java轉utf8
① 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
java不同編碼之間進行轉換,都需要使用unicode作為中轉。
以utf-8轉gbk為例,示例代碼如下:
String t = "這是一個字元串aaa111";
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(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 怎麼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怎麼轉utf8編碼
java中,編碼是位元組轉字元的時候產生的不同映射造成的差異。那我們就可以利用這一點實現。例如,我們有一個gbk編碼格式的字元串,那我們先把它的位元組得到。
String s = "abc";
byte[] b = s.getBytes();
再將其轉為需要的編碼格式。如utf-8
String newStr = new String(b,"utf-8")
binggo~!!
⑥ java怎麼設置為utf-8的編碼
要讓一個
Java
源文件打開時編碼格式為
UTF-8,需要做2件事情:
1)設置Java
源文件的默認編碼格式為UTF-8;
2)設置workspace的編碼格式為UTF-8。
相應設置如下:
設置
Java
源文件的默認編碼格式為
UTF-8
在
Windows->Preference
頁面中,選擇
General->Content
Types
在右邊的框中,選擇
Text->Java
Source
File,將下面的
Default
Encoding
改為
UTF-8
設置
workspace
的編碼格式為
UTF-8
在
Windows->Preference
頁面中,選擇
General->WorkSpace
選擇右側框中的
Text
File
encoding,改為
UTF-8
設置完這2處,默認打開
Java
源文件就是UTF-8編碼了。
⑦ java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做
GBK編碼是一個中文2個位元組,而UTF-8編碼是一個中文3個位元組,當我們調用getBytes("UTF-8")方法時,會通過計算來增加位元組。正常的情況下是兩個兩個的轉化,但是當位元組是奇數時最後1個位元組轉字元就會計算錯誤,然後直接賦予最後這個字元為?。所以我們需要創建ISO-8859-1編碼的字元串,保證一個輸入只有一個輸出。
import java.io.UnsupportedEncodingException;
public class new_122 {
public static void main(String[] args) throws UnsupportedEncodingException {
String gbk ="我來了";
String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
System.out.println(new String(iso.getBytes("ISO-8859-1"),"UTF-8"));
}
}