java 位元組碼 byte

2021-06-20 17:48:53 字數 1533 閱讀 8339

1.string 轉 byte

byte midbytes=isostring.getbytes("utf8");

//為utf8編碼

byte isoret = srt2.getbytes("iso-8859-1");

//為 iso-8859-1編碼 其中

iso-8859-1為單位元組的編碼

2.byte轉string

string isostring = new string(bytes,"iso-8859-1");

string srt2=new string(midbytes,"utf-8");

說明:在網路傳輸或其它應用中常常有同一的中介軟體,假設為string型別。因此需要把其它型別的資料轉換為中介軟體的型別。

將字串進行網路傳輸時,如socket,需要將其在轉換為byte型別。這中間如果採用用不同的編碼可能會出現未成預料的問題,如亂碼。

下面舉個例子:

我們用socket傳輸string型別的資料時,常常用utf-8進行編碼,這樣比較可以避免乙個「中文亂碼」的問題。

傳送端:

string sendstring="傳送資料";

byte sendbytes= 

sendstring

.getbytes("utf8");

.......socket傳送

接受端:

string recstring=new string

(sendbytes

,"utf-8");

但是,這裡往往又會出現這樣乙個問題。就是想要傳送的資料本身就是byte型別的。

如果將其通過utf-8編碼轉換為中介軟體string型別就會出現問題

如:byte

bytes = new byte ;

string sendstring=new string(  bytes ,"utf-8");

byte sendbytes= sendstring .getbytes("utf8");

然後再傳送

接受時進行逆向轉換

string recstring=new string( sendbytes ,"utf-8");

byte mybytes=isostring.getbytes("utf8");

這時 mybytes中的資料將是[50, 0, -17, -65, -67, 28, -17, -65, -67]

因此,需要採用單位元組的編碼方式進行轉換

string sendstring=

new string

(bytes

,"utf-8");   改為       

string sendstring=

new string

(bytes

,"iso-8859-1");

byte mybytes=isostring.getbytes("utf8");  改為   

byte mybytes=isostring.getbytes(

"iso-8859-1");

這樣所需要的位元組就有恢復了。

位元bit 位元組byte

1 位 bit 來自英文bit,音譯為 位元 表示二進位制位。位是計算機內部資料儲存的最小單位,11010100是乙個8位二進位制數。乙個二進位制位只可以表示0和1兩種狀態 兩個二進位制位可以表示00 01 10 11四種狀態 三位二進位制數可表示八種狀態.2 位元組 byte 位元組來自英文byt...

位元組(byte)與位元(bit)

1 bit 位 位是計算機中儲存資料的最小單位,指二進位制數中的乙個位數,其值為 0 或 1 2 byte 位元組 位元組是計算機儲存容量的基本單位,乙個位元組由8位二進位制數組成。在計算機內部,乙個位元組可以表示乙個資料,也可以表示乙個英文本母,兩個位元組可以表示乙個漢字。1b 8bit 簡單說就...

位元組陣列 Byte

位元組 byte 發音 bait 位元組是通過網路傳輸資訊 或在硬碟或記憶體中儲存資訊 的單位。在ascii碼中,乙個英文本母 不分大小寫 佔乙個位元組的空間,乙個中文漢字佔兩個位元組的空間。符號 英文標點佔乙個位元組,中文標點佔兩個位元組。舉例 英文句號 佔1個位元組的大小,中文句號 佔2個位元組...