【发布时间】:2015-12-25 22:55:15
【问题描述】:
我得到输入 20 字节。使用的字符集是 UTF-8
当我将其转换为字符串时,我看到 0000000000000000000000000000000000000000
这是正确的。
但是当我将它转换为字符串时,我得到一个空值。我怀疑字符集有问题,但即使尝试了不同的字符集,我也无法返回值“0”。
public String convertFromBytes(byte[] input) {
System.out.println("BYTES ARE =="+ Hex.encodeHexString(input));
System.out.println("VALUE IS "+ new String(input, this.charset));
return new String(input, this.charset);
}
我尝试更改 charSet 但无法解决它,任何我可能遗漏的线索。
US-ASCII
ISO-8859-1
UTF-8
UTF-16BE
UTF-16LE
UTF-16
【问题讨论】:
-
"但是当我将它转换为字符串时,我得到一个空值。" - 不,你几乎肯定会得到二十次 U+0000。如果每个字节的值为 0,那是正确的结果。我不清楚你为什么期望得到其他任何东西 - 请注意,在我知道的任何编码中,字符“0”not被编码为字节 0。
-
是的,我现在有 20 个空格。你说的对。
-
嗯 U+0000 不是空格,但那是另一回事...
标签: java encoding utf-8 character-encoding