導航:首頁 > 編程語言 > 亂碼轉換java

亂碼轉換java

發布時間:2022-12-08 04:31:05

java中如何把類似%E6%8D%A2%E4%B9的編碼轉化成中文

java.net.URLDecoder.decode("%E6%8D%A2%E4%B9","UTF-8")
前一參數是編碼串,後一參數是編碼方式名稱。
註:不一定有效,有時編碼用的不是UTF-8,java支持的編碼種類有上百種。用錯了編碼方式結果不會正確的。
比如用UTF-8試驗了幾個鏈接中的編碼串是正確的,但上面的編碼串試驗了所有編碼方式,都是亂碼。
編碼方式操作:
import java.nio.charset.Charset;
取得本機支持的編碼方式名稱數組:
String[] charsets=Charset.availableCharsets().keySet().toArray(new String[0]);
取得本機支持的編碼方式數組:
Charset[] charsets=Charset.availableCharsets().keySet().toArray(new Charset[0]);
取得本機默認的編碼方式名稱:
Charset.defaultCharset().name()

補充:Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。

Ⅱ java位元組數組轉換中文亂碼,請求幫助

String str = new String(test,"UTF-16");
System.out.println(str);
列印結果:???流量已使用1000.00MB,剩餘0.00MB;(均不含半年包、定向流量包)。超出流量0.00MB,超出流量(不含港澳台)按照約定資費

Ⅲ java編碼轉換,get請求提交的中文參數亂碼

.getRequest().getResponse().setContentType("text/json; charset=gbk");

Ⅳ java中文亂碼,能說下string.getBytes()和new String()轉碼是,具體點。

1、Java中,【String.getBytes(String decode)】的方法,會根據指定的decode,編碼返回某字元串在該編碼下的byte數組表示,例如:

byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1")

上面三行代碼表示:分別返回「中」這個漢字在GBK、UTF-8和ISO8859-1編碼下的byte數組表示,此時b_gbk的長度為2,b_utf8的長度為3,b_iso88591的長度為1。

2、而通過【new String(byte[], decode)】的方式來還原這個「中」字時,實際是使用decode指定的編碼來將byte[ ]解析成字元串,例如:

String s_gbk = new String(b_gbk,"GBK");
String s_utf8 = new String(b_utf8,"UTF-8");
String s_iso88591 = new String(b_iso88591,"ISO8859-1");

s_gbk和s_utf8都是「中」,而只有s_iso88591是一個不認識 的字元,因為ISO8859-1編碼的編碼表中,根本就沒有包含漢字字元,當然也就無法通過"中".getBytes("ISO8859-1")。

因此,通過【String.getBytes(String decode)】方法來得到byte[ ]時,要確定decode的編碼表中確實存在String表示的碼值,這樣得到的byte[ ]數組才能正確被還原。

(4)亂碼轉換java擴展閱讀

java中文編碼避免亂碼

1、為了讓中文字元適應某些特殊要求(如http header頭要求其內容必須為iso8859-1編碼),可能會通過將中文字元按照位元組方式來編碼的情況,比如:

String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1")

2、上述例子中的s_iso8859-1字元串實際是三個在 ISO8859-1中的字元,在將這些字元傳遞到目的地後,目的地程序再通過相反的方式:

String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")

來得到正確的中文漢字。這樣就既保證了遵守協 議規定、也支持中文。

3、String.getBytes(String decode)方法會根據指定的decode編碼返回某字元串在該編碼下的byte數組表示這里是encode ,not decode,從字元串到位元組數組是編碼的過程,從位元組數組到字元串(即 new String(byte[] , charsetname))才是解碼的過程。

Ⅳ java中文亂碼怎麼轉換為漢字

我遇到過和你一樣的錯誤,
在你編寫String gb = new String(「資料庫查處來的中文」.getBytes("ISO-8859-1"),"UTF-8");這句話的時候請注意一下「資料庫查處來的中文」必須是ISO-8859-1編碼,否則轉換失敗。
另外光資料庫是UTF-8編碼是不行的,請確定一下資料庫建表的時候是否設置成UTF-8編碼。
希望我的回答能夠幫助你,謝謝

Ⅵ java轉碼後局部亂碼問題

問題給你解決了,看代碼

public class Test {
public static void main(String[] args) {

try {
String s = new String("中文測試局部亂碼問題2011中文測試上傳文件名亂碼問題.txt".getBytes(),
"UTF-8");
System.out.println(s);
s = java.net.URLDecoder.decode(s, "utf-8"); //utf8轉gbk
System.out.println(s);
Test convert = new Test();
byte[] fullByte = convert.gbk2utf8(s); //gbk轉utf8
String fullStr = new String(fullByte, "UTF-8");
System.out.println("string from GBK to UTF-8 byte: " + fullStr);

} catch (Exception e) {
e.printStackTrace();
}
}

public byte[] gbk2utf8(String chenese) {
char c[] = chenese.toCharArray();
byte[] fullByte = new byte[3 * c.length];
for (int i = 0; i < c.length; i++) {
int m = (int) c[i];
String word = Integer.toBinaryString(m);

StringBuffer sb = new StringBuffer();
int len = 16 - word.length();

for (int j = 0; j < len; j++) {
sb.append("0");
}
sb.append(word);
sb.insert(0, "1110");
sb.insert(8, "10");
sb.insert(16, "10");

String s1 = sb.substring(0, 8);
String s2 = sb.substring(8, 16);
String s3 = sb.substring(16);

byte b0 = Integer.valueOf(s1, 2).byteValue();
byte b1 = Integer.valueOf(s2, 2).byteValue();
byte b2 = Integer.valueOf(s3, 2).byteValue();
byte[] bf = new byte[3];
bf[0] = b0;
fullByte[i * 3] = bf[0];
bf[1] = b1;
fullByte[i * 3 + 1] = bf[1];
bf[2] = b2;
fullByte[i * 3 + 2] = bf[2];

}
return fullByte;
}
}

結果:
中文測試局部亂碼問題2011中文測試上傳文件名亂碼問題.txt
中文測試局部亂碼問題2011中文測試上傳文件名亂碼問題.txt
string from GBK to UTF-8 byte: 中文測試局部亂碼問題2011中文測試上傳文件名亂碼問題.txt

Ⅶ Java編碼時輸入漢字出現亂碼解決方法

java文件讀取的時候有中文就很出現亂碼,通常獲取到的文件中通常都是「iso8859-1」格式,需要轉換為「UTF-8」格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");進行下強制轉換後在進行讀取即可。
備註:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的強制轉換不成功,依次進行這些格式的嘗試,肯定是可以解決問題的。

Ⅷ Delphi程序,將中文轉成utf-8 變成亂碼後作為參數,請求到java程序里,怎麼將亂碼轉成原來的值

Delphi 有2種編碼,老版本用的是 Ansi 新版 是 unicode 。

你只需要在 java 里 把接收到的 utf-8 轉 成 ansi 或 unicode 就好了。

Ⅸ java中字元亂碼轉化的問題

如果B接受編碼方式也不能更改為和A一致,那麼舉個例子
A GBK,B UTF-8
B獲取的內容亂碼,
String s=request.getParameter("欄位名");
這里s會亂碼,可以做如下轉換
byte[] bytes=s.getBytes(" B當前的編碼格式");
String s=new String(bytes,"A的編碼方式");
這個時候s就正常了

閱讀全文

與亂碼轉換java相關的資料

熱點內容
法律寫作pdf 瀏覽:142
國貨哪個品牌最好app 瀏覽:949
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:649
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263
內核命令行 瀏覽:324
腳本提取源碼器 瀏覽:930
smo源碼 瀏覽:877
為什麼要搭建單獨伺服器 瀏覽:480
編譯器有什麼控制 瀏覽:893
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:647
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:555
注冊dns伺服器寫什麼 瀏覽:881