本文目錄一覽:
- 1、java中如何修改字符串編碼?
- 2、java如何把string轉為utf-8
- 3、請問java如何改變字符串的編碼方式
- 4、Java中如何把GBK編碼的字符串轉成utf-8編碼
- 5、Java怎麼將字符串轉換為GB2312原編碼
java中如何修改字符串編碼?
假設你的字符串的字節數組是buf,按照GBK解析這個字符串的方法就是如下
String
str=new
String(buf,0,buf.length,”GBK”);
如果是utf-8編碼,就把GBK換成utf-8即可
java如何把string轉為utf-8
可通過以下代碼轉:
/**
* Get XML String of utf-8
*
* @return XML-Formed string
*/
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = “”;
String xmlUTF8=””;
try {
xmString = new String(sb.toString().getBytes(“UTF-8”));
xmlUTF8 = URLEncoder.encode(xmString, “UTF-8”);
System.out.println(“utf-8 編碼:” + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
}
Java programming language具有目前大部分編程語言所共有的一些特徵,被特意設計用於互聯網的分布式環境。Java具有類似於C++語言的”形式和感覺”,但它要比C++語言更易於使用,而且在編程時徹底採用了一種”以對象為導向”的方式。使用Java編寫的應用程序,既可以在一台單獨的電腦上運行,也可以被分布在一個網絡的服務器端和客戶端運行。另外,Java還可以被用來編寫容量很小的應用程序模塊或者applet,做為網頁的一部分使用。applet可使網頁使用者和網頁之間進行交互式操作。
Java是Sun微系統公司在1995年推出的,推出之後馬上給互聯網的交互式應用帶來了新面貌。目前,最常用的兩種互聯網瀏覽器軟件中都包括一個Java虛擬機。幾乎所有的操作系統中都增添了Java編譯程序。
請問java如何改變字符串的編碼方式
byte[] b=string.getBytes(“GB2312”);//使用GB2312編碼方式對字符串string進行編碼
//這時要想將字節數組b的內容正確解碼只能使用GB2312的編碼方式進行解碼,即
String str=new String(b,”GB2312″);//這裡若使用UTF-8編碼方式來進行解碼就會亂碼
//將eclipse默認的編碼方式改為UTF-8,只是用該編碼方式對.java源文件進行編碼保存
//這個對new String(string.getBytes(“GB2312″),”UTF-8”)沒啥影響的
//因為從java源文件獲取字符串string時,已經通過UTF-8編碼方式進行解碼了
//而string.getBytes(“GB2312”)是使用指定的編碼方式對字符串string進行從新編碼
//這兩者之間沒啥關係的
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怎麼將字符串轉換為GB2312原編碼
@Test
public void test333(){
String a=”青白”;
try {
byte[] b=a.getBytes(“GB2312”);
System.out.println(bytesToHexFun1(b));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
//將byte數組轉成16進制字符串
public static String bytesToHexFun1(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 = new char[bytes.length * 2];
int a = 0;
int index = 0;
for(byte b : bytes) { // 使用除與取余進行轉換
if(b 0) {
a = 256 + b;
} else {
a = b;
}
buf[index++] = HEX_CHAR[a / 16];
buf[index++] = HEX_CHAR[a % 16];
}
return new String(buf);
}
中心思想就是先轉成GB2312的byte數組,再轉成16進制就可以了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279425.html