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個位元組...