java byte num =1 3_java中把byte[]{1,2,3}通过怎样的转换,可以让其最终在TextView中显示为123...
展開全部
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");
說明:
在網絡傳輸或其它應用中常常有e68a84e8a2ad3231313335323631343130323136353331333363383464同一的中間件,假設為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[] { 50, 0, -1, 28, -24 };
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 num =1 3_java中把byte[]{1,2,3}通过怎样的转换,可以让其最终在TextView中显示为123...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js的 ajax获取后台数据,如何通过j
- 下一篇: C++学习之路 | PTA乙级—— 10