[問題] byte[]轉換
請問一下,
我利用sniffer擷取封包,
利用ip4.destination()函式可以回傳ip
回傳的type是byte[]
我得到的資料是→ [B@42e816
但是我不管怎麼轉換,轉回string都會是亂碼
我試著反向操作,先宣告String s = "192.168.0.1"
把它轉成byte[]可以得到 [B@42e816
不知道是不是ip4回傳的多了空格還什麼
導致亂碼~~
網路查到好像要轉成Unicode String的樣子
ex. String (byte[] data,String enc) ←但不能用@@
有人知道原因/解法嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.131.253
推
08/06 04:45, , 1F
08/06 04:45, 1F
→
08/06 05:13, , 2F
08/06 05:13, 2F
推
08/06 05:28, , 3F
08/06 05:28, 3F
→
08/06 12:47, , 4F
08/06 12:47, 4F
為什麼不能連續推文(/‵Д′)/~ ╧╧
想請問why:
String s = "192.168.0.1";
System.out.println(s.getByte());
→[B@42e816
(這個長相就跟監聽封包回傳的一樣,所以我問題就是如何轉回去)
System.out.println(new String(s.getByte()));
→192.168.0.1
(此時轉的回去,我就想是不是封包經過傳輸有編碼的問題)
結果剛剛發現:
String s = "any thing"
轉成byte[],印出來都是[B@42e816
然後我就無解了。
請問我的觀念哪邊有錯 & 這串[B@42e816到底是什麼!?
謝謝
※ 編輯: polomoss 來自: 220.136.106.19 (08/06 13:25)
→
08/06 13:29, , 5F
08/06 13:29, 5F
byte[] address = ip4.source();
String ip = "";
for (int i=0; i<4; i++) {
ip += address[i] & 0xff;
if (i != 3)
ip += ".";
}
找到解法,自問自答xd
※ 編輯: polomoss 來自: 220.136.106.19 (08/06 14:39)
推
08/06 16:26, , 6F
08/06 16:26, 6F
→
08/06 17:41, , 7F
08/06 17:41, 7F
→
08/06 17:44, , 8F
08/06 17:44, 8F
→
08/06 17:45, , 9F
08/06 17:45, 9F
→
08/06 17:46, , 10F
08/06 17:46, 10F