为什么我的java String的长度比它生成的byte []数组短?

时间:2016-12-31 16:48:52

标签: java mysql blob unicode-string

我正在使用JDBC从MySql数据库中读取blob。我知道结果字节数组是好的,我已经通过HTTP发送它作为每个字节的字符串数字,并成功下载了结果(jpg)。 (只是为了证明mysql - > java servlet数据很好)。

使用UTF-8从此字节数组构造一个新字符串会产生一个长度比字节数组短的字符串,以及我无法解密的值。如果UTF-8每个字符至少1个字节,那么结果字符串不应该是AT A MINIMUM它产生的字节数组的长度吗? (对于此特定示例,字节长度为12,079,474,结果字符串长度为11,501,845)

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

在你的字节中,你有数据被解释为连续字节,即在UTF-8中它们具有特殊含义,它们从多个字节形成一个Unicode字符。这就是你的字符串短于字节数的原因。