如果我有一些二進制數據D並將其轉換爲字符串S.我期望將它轉換回二進制我會得到D.但它是錯誤的。將二進制數據轉換爲字符串
public class A {
public static void main(String[] args) throws IOException {
final byte[] bytes = new byte[]{-114, 104, -35};// In hex: 8E 68 DD
System.out.println(bytes.length); //prints 3
System.out.println(new String(bytes, "UTF-8").getBytes("UTF-8").length); //prints 7
}
}
爲什麼會發生這種情況?
你試圖強制任意的二進制數據到一個字符串?爲什麼? – Jesper 2012-02-04 20:22:00
(如果*由於某種原因必須隱藏字符串中的二進制數,則需要使用提供字節和字符之間的一對一映射的編碼; ISO-8859-1將是明顯的選擇UTF-8的字節序列不代表有效字符。) – bobince 2012-02-05 09:29:21