string s = "aaaaaaaaa;//string變數
byte b = s.getbytes();//string轉換為byte
string t = new string(b);//bytep轉換為string
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" );
這樣所需要的位元組就有恢復了。
Java String byte陣列 字符集轉換
1,byte str.getbytes string charsetname 將str按指定的字符集charsetname解碼為字元陣列.返回用指定的字符集charsetname解碼後的字元陣列。2,string byte bytes,string charsetname 構造乙個新的string....
博學之,審問之,慎思之,明辨之,篤行之
禮記 中庸 十九章有云 博學之,審問之,慎思之,明辨之,篤行之。這說的是為學的幾個層次,或者說是幾個遞進的階段。博學之 意謂為學首先要廣泛的獵取,培養充沛而旺盛的好奇心。好奇心喪失了,為學的慾望隨之而消亡,博學遂為不可能之事。博 還意味著博大和寬容。惟有博大和寬容,才能相容幷包,使為學具有世界眼光和...
接觸之,熟悉之,打破之
接觸之,熟悉之,打破之 拿破崙小時候就是孩子王,不管同夥伴們玩什麼遊戲,它總是贏家。同時,它更善於改變遊戲規則,以便能夠發揮他自己的優勢。如果能夠成為遊戲規則的左右者,那麼,在當今商戰中必定是最大的贏家。我們處在乙個有著各種各樣遊戲規則的大環境中,每時每刻都要面對不同的遊戲規則,轉換不同的角色,讓自...