本文目錄一覽:
- 1、java 怎麼gbk轉碼utf-8
- 2、java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做
- 3、java中怎麼顯示GBK?
- 4、java中如何得到輸入的漢字的GBK編碼
- 5、為什麼java的默認編碼不是utf-8 而是gbk
- 6、在java中gbk怎麼轉utf8編碼
java 怎麼gbk轉碼utf-8
方法一:
思路:先轉為Unicode,然後轉為GBK
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);
方法二:
public static void main(String[] args) {
String str=”字符串編碼轉換”;
try {
byte[] temp=str.getBytes(“utf-8”);//這裡寫原編碼方式
byte[] newtemp=new String(temp,”utf-8″).getBytes(“gbk”);//這裡寫轉換後的編碼方式
String newStr=new String(newtemp,”gbk”);//這裡寫轉換後的編碼方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做
java中GBK編碼格式轉成UTF8編碼格式的方法如下:
public static void main(String[] args) throws Throwable {
String errStr = “errStr”;
System.out.println(recover(errStr));
}
public static String recover(String str) throws Throwable {
return new String(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中怎麼顯示GBK?
public static void main(String[] args){
try {
String a = “肖”;
byte[] b = a.getBytes(“GBK”);
for(byte bt: b){
System.out.println(Integer.toHexString(bt));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
輸出結果:
ffffffd0
ffffffa4
java中如何得到輸入的漢字的GBK編碼
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cn.timecd.gyhhy.mscup;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* 主要涉及到 String 類的 getBytes 方法
* @author 32798
*/
public class Test {
public static void main(String[] args){
// 預定義常量
String charset = “gbk”;// 編碼
// 請注意,找不到編碼集的時候,下面這句代碼 會拋出
// java.nio.charset.UnsupportedCharsetException
Charset charset$ = Charset.forName(charset); // 獲取編碼集
// 只是閱讀: 兩個 變量名字 比較, 請注意區分
// charset
// charset$
// 從 string 轉 bytes
String str = “這是一個測試文本”;
try {
// 方法一: 直接通過 編碼集的名字 轉碼
// 需要 try-catch
// 當字符集找不到時會拋出 java.io.UnsupportedEncodingException
System.out.println(Arrays.toString(str.getBytes(charset)));
} catch (UnsupportedEncodingException ex) {
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 (InterruptedException ex) {}
// 從bytes 轉 string
//byte[] bytes = {-78, -35, -60, -32, -62, -19};
byte[] bytes = str.getBytes(charset$);// 只是為了獲取測試文本的 gbk 碼
System.out.print(“\n\n\n”); // 隔出3行, 免得跟之前的輸出混淆
try {
// 方法一: 通過 編碼集名字 新建一個 string
// 需要 try-catch
// 當字符集找不到時會拋出 java.io.UnsupportedEncodingException
System.out.println(new String(bytes, charset));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
// 方法二: 直接通過 字符集 新建一個 string
System.err.println(new String(bytes, charset$));
}
}
為什麼java的默認編碼不是utf-8 而是gbk
因為系統是中文語言的,得到的是GBK編碼,所以肯定不是utf的。
工具:
win7
jdk
方法:
在計算機上右鍵選擇屬性
點擊高級系統設置
點擊環境變量
在系統變量中點新建,輸入變量名為: JAVA_TOOL_OPTIONS, 變量值為:-Dfile.encoding=UTF-8,確定就可以了。
在java中gbk怎麼轉utf8編碼
java中,編碼是位元組轉字符的時候產生的不同映射造成的差異。那我們就可以利用這一點實現。例如,我們有一個gbk編碼格式的字符串,那我們先把它的位元組得到。
String s = “abc”;
byte[] b = s.getBytes();
再將其轉為需要的編碼格式。如utf-8
String newStr = new String(b,”utf-8″)
binggo~!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254115.html