java中string與byte 的轉換

2021-07-03 23:17:51 字數 1580 閱讀 2781

**:

1.string 轉 byte

byte midbytes=iso

string.getbytes("utf8");

//為utf8編碼

byte isoret = srt2.getbytes("is

o-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");

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

java中byte陣列與String間的轉換

byte b for int i 0 i b.length i system.out.println string s null try catch exception e 上面的 只有在陣列b都為正數下才正確,當陣列中包含負數時就會出錯。這時我們可以使用下面的 byte b for int i 0...

Java中String與Byte之間的各種轉換

這個是很常用的,一直沒整理,現在來整理下,供自己備用。1.乙個字串,用byte陣列形式通過串列埠傳送出去,很簡單 string cmd x byte cmdbyte cmd.getbytes 如果是at命令的話,一般後面還要加上兩個不可見字元 0x0d 0x0a 分別是回車換行 2.讀到一串byte...

Java中String與Int怎樣相互轉換

1 string 轉換為int 有兩個方法 1 inti integer.parseint string 或i integer.parseint string intradix 這裡說下i integer.parseint string intradix 例如 string str 123 int ...