**:
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 ...