【发布时间】:2016-05-12 18:26:57
【问题描述】:
在 Java 中,我有一个位字符串,例如“01100111000111……”。接下来,我想做以下事情:
- 将字符串转换为字节数组,我已成功使用:
byte[] bytes = new BigInteger(bits, 2).toByteArray(); - 接下来,我想将字节转换为我尝试使用的字符串:
String byteString = new String(bytes, "UTF-8");但结果不正确(垃圾字符等)。
我认为“UTF-8”不是正确的编码。
请告知是否有任何其他方法可以从此类字节或正确的编码中获取字符串。
【问题讨论】:
-
我认为“US-ASCII”会起作用。
-
这样您就可以为您的问题提供自己的答案:-)
-
嗯,不。只是想,但它没有工作。所以是的,仍然需要回答。
-
如果你没有编码,你能做的最好的就是尝试它们并检查结果,直到你弄清楚什么是正确的
-
需要注意的一点是:如果初始字符串以 1 开头并且长度是 8 个字符的偶数倍,那么调用
BigInteger(bits, 2).toByteArray()将以0结尾byte数组,可能会混淆String的后续构造。