導航:首頁 > 編程語言 > java字元解碼

java字元解碼

發布時間:2022-07-31 21:42:57

java 中編碼解碼問題

new String(strLine.getBytes("iso8859-1"),"gb2312")
其實這里很好明白
首先將字元串轉換成byte數組。。以iso8859-1的編碼來轉換。。
然後使用new String創建一個新字元串,前面帶上byte[]數組 後面帶上他的具體編碼。。
一般轉碼都使用這樣的方式。。JSP里經常出現亂碼的
都是加上過濾器然後中間使用這個new String(strLine.getBytes("iso8859-1"),"gb2312")方式將編碼轉換。
請採納答案,支持我一下。

Ⅱ java如何把string轉為utf-8

java不同編碼之間進行轉換,都需要使用unicode作為中轉。

String str = "任意字元串";

str = new String(str.getBytes("gbk"),"utf-8");

備注說明:

str.getBytes("UTF-8"); 意思是以UTF-8的編碼取得位元組

new String(XXX,"UTF-8"); 意思是以UTF-8的編碼生成字元串

舉例:

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;

(2)java字元解碼擴展閱讀:

UTF-8編碼規則:

如果只有一個位元組則其最高二進制位為0;如果是多位元組,其第一個位元組從最高位開始,連續的二進制位值為1的個數決定了其編碼的位元組數,其餘各位元組均以10開頭。

實際表示ASCII字元的UNICODE字元,將會編碼成1個位元組,並且UTF-8表示與ASCII字元表示是一樣的。所有其他的UNICODE字元轉化成UTF-8將需要至少2個位元組。每個位元組由一個換碼序列開始。第一個位元組由唯一的換碼序列,由n位連續的1加一位0組成,首位元組連續的1的個數表示字元編碼所需的位元組數。

Unicode轉換為UTF-8時,可以將Unicode二進制從低位往高位取出二進制數字,每次取6位,如上述的二進制就可以分別取出為如下示例所示的格式,前面按格式填補,不足8位用0填補。

Ⅲ java里關於String的編碼與解碼

從語言編碼的角度,getBytes(charset)不是解碼、也不是編碼,是轉換。API 說的是針對數據的角度。把一個整體的String分解成byte[]了。

byte[] b2=s.getBytes("gbk");
String ss=new String(b2,"utf-8");

從GBK轉換成UTF-8。

UTF8包含更多的文字量。

Ⅳ java中編碼與解碼分別指什麼

java中編碼:URLEncoder.encode(strUri,"utf-8");

java中解碼碼:URLDecoder.decode(strUri,"utf-8");

Ⅳ 我是學java的 請問什麼是字元編碼和解碼

字元集:使用哪些字元。也就是說哪些漢字,字母和符號會被收入標准中。所包含「字元」的集合就叫做「字元集」。
編碼:規定每個「字元」分別用一個位元組還是多個位元組存儲,用哪些位元組來存儲,這個規定就叫做「編碼」。
各個國家和地區在制定編碼標準的時候,「字元的集合」和「編碼」一般都是同時制定的。因此,平常我們所說的「字元集」,比如:GB2312, GBK, JIS 等,除了有「字元的集合」這層含義外,同時也包含了「編碼」的含義。

Ⅵ java是如何編碼解碼的

[java]view plain

Ⅶ java怎麼把utf-8的字元串轉換為gb2312格式

Java中字元串轉碼,根據實際運用的環境有以下三種方式

1、使用Java.lang.String

這是最常用的方法,先用對應編碼獲取位元組,然後重新構造新編碼,示例代碼如下:

Strings="清山";
byte[]b=s.getBytes("utf-8");//編碼
Stringsa=newString(b,"gb2312");//解碼:用什麼字元集編碼就用什麼字元集解碼

2、java.io.InputStreamReader/OutputStreamWriter:橋轉換

讀寫文件的應用中,可以使用這種方式,直接在IO流構造中轉換,示例代碼如下:

InputStreamis=newFileInputStream("C:/項目進度跟蹤.txt");//文件讀取
InputStreamReaderisr=newInputStreamReader(is,"utf-8");//解碼
OutputStreamos=newFileOutputStream("C:/項目進度跟蹤_gb2312.txt");//文件輸出
OutputStreamWriterosw=newOutputStreamWriter(os,"gb2312");//開始編碼

3、java.nio.Charset

使用nio中的Charset轉換字元,示例代碼如下:

CharsetinSet=Charset.forName("utf-8");//解碼字元集
CharsetoutSet=Charset.forName("gb2312");//編碼字元集
CharsetDecoderde=inSet.newDecoder();//解碼器
CharsetEncoderen=outSet.newEncoder();//編碼

Ⅷ 求java編碼和解碼的通俗解釋

在內存中,本來沒有字元的概念,每個位元組都是一個0-255的數字。我們把數字進行編號,每個數字代表一個字元。追根溯源,以ASCII碼為例。比如65(十進制)定義為字元'A',66定義為'B',61定義為'='。這就是編碼。然後才有了char型定義,實際上等同於byte,只是使用char型時就知道要表示的是字元。如果char ch=65,然後printf("%c",ch),出來就是'A',這就是解碼了。如果printf("%d",ch),那出來就仍是65。 單位元組byte只能支持0-255的編碼,對於亞洲語言,像中文漢字,是完全不夠用的。所以之後有雙位元組(0-65535)以及多位元組編碼的出現。以雙位元組為例,0-65535並不能同時為多種語言編碼。所以打個比方,同一個數字,可能在中文GBK編碼時定義為漢字'王',而在日文編碼MS932中就被定義為'小'。當內存中的數字被解釋為字元(文字和符號)時,就是解碼過程,把文字和符號用數字定義時就是編碼。實際編碼過程中,不少是前後位元組有關聯性定義的,並非我說的那麼簡單。 在網路傳輸時,實際上仍然是單位元組,甚至是位元組中1個bit一個bit傳輸的。我們在傳輸時使用byte數組,即基本類型,而在傳輸前後轉回GBK中文編碼。以老美的視角來看問題,則從byte變成亞洲語言(GBK/Unicode)屬於編碼encoding,而相反過程是解碼decoding。

Ⅸ java導出 Excel時,對特殊字元編碼後的字元串進行解碼

//關鍵代碼
HSSFCell cell = new HSSFCell();
cell.setCellType(HSSFCell.CELL_TYPE_STRING);

閱讀全文

與java字元解碼相關的資料

熱點內容
騰訊雲連接不上伺服器 瀏覽:221
不能用來表示演算法的是 瀏覽:859
6軸機器人演算法 瀏覽:890
手機主題照片在哪個文件夾 瀏覽:294
安卓手機後期用什麼軟體調色 瀏覽:628
cad修改快捷鍵的命令 瀏覽:242
好錢包app怎麼登錄不了 瀏覽:859
樹莓派都用python不用c 瀏覽:757
access文件夾樹的構造 瀏覽:662
安卓多指操作怎麼設置 瀏覽:658
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923
全球程序員節點贊 瀏覽:986
php函數傳遞數組 瀏覽:632
人工峰群演算法的目標函數 瀏覽:469
如何刪加密文檔 瀏覽:105