【发布时间】:2018-05-29 23:01:38
【问题描述】:
考虑下面的代码sn-p
byte[] b = new byte[]{ 0, 0, 0, -127 }; // possible Byte Array
// converted byte array to String using UTF-8
String s = String(b, StandardCharsets.UTF_8);
现在再次尝试将字符串转换为字节数组
b = s.getBytes(StandardCharsets.UTF_8);
现在当我们将它与原始字节数组进行比较时,往返时的值不一样
[0, 0, 0, -17, -65, -67]
谁能建议我们如何将字符串转换回原始字节数组
【问题讨论】:
-
您的字节数组不是有效的 UTF-8 字符串。
-
查看一个 utf-8 字符有多少字节。 stackoverflow.com/questions/10229156/…
-
如果您的 InputStream 包含这些字符,那么它不是从 UTF-8 源读取的。首先确保使用正确的编码。
-
我仍然无法理解为什么您需要有符号值来进行 UTF-8 转换
-
这里没有InputStream。