0
在java中恢復字節,爪哇 - 從字符串
// already set
byte[] bytes = ...;
字節數組可以轉換爲字符串如
String s = bytes.toString();
問題是:我怎麼能恢復相同的「字節」從「 s「嗎?
事實是,下面的代碼是錯誤的。
byte[] byteFromString = x.getBytes();
在java中恢復字節,爪哇 - 從字符串
// already set
byte[] bytes = ...;
字節數組可以轉換爲字符串如
String s = bytes.toString();
問題是:我怎麼能恢復相同的「字節」從「 s「嗎?
事實是,下面的代碼是錯誤的。
byte[] byteFromString = x.getBytes();
如果你只是使用bytes.toString()
,那麼不,這是不可能的。這會得到一個表示byte[]
的散列碼的字符串,它基本上是隨機的,並且與byte[]
的實際內容沒有任何關係。
如果byte[]
其實是代表一個字符串的編碼,如UTF-8,那麼你可以做new String(bytes, StandardCharsets.UTF_8)
將其轉換爲一個String
,並string.getBytes(StandardCharsets.UTF_8)
將其轉換回。
Get!非常感謝。 –
您的問題的答案可能取決於字符串所具有的_encoding_。例如,在UTF-8中,一個字符可能由4個字節組成,但也可能只包含一個字節。 –
http://stackoverflow.com/questions/19834854/how-to-cast-string-to-byte-array – ryekayo
嚴格地說'String s = bytes.toString();'不是一個強制操作 – Lee