我有以下的Java代码:将字节数组转换为字符串并返回字节数组时,为什么长度不同?
byte[] signatureBytes = getSignature();
String signatureString = new String(signatureBytes, "UTF8");
byte[] signatureStringBytes = signatureString.getBytes("UTF8");
System.out.println(signatureBytes.length == signatureStringBytes.length); // prints false
问:我可能误解这一点,但我认为new String(byte[] bytes, String charset)
和String.getBytes(charset)
互为逆运算?
问:作为后续,什么是一个安全的方式来传输一个字节[]数组作为一个字符串?
工作。什么是一个安全的方式来传输一个byte []数组作为字符串呢? – John 2011-02-15 23:02:13
org.apache.commons.codec.binary.Base64永远是您传递任意数据的最好朋友:) – Affe 2011-02-15 23:03:31