不同字符集中字符串的字节长度

时间:2014-09-04 07:22:09

标签: java string character-encoding

我需要找出Java中不同字符集的字符串长度。假设我有160个字符和ASCII字符集,字节长度应为140。 同样我也需要其他字符集。

我可能会在任何字符集中获得输入流,但一旦收到它将以UTF-16存储,随后我将无法获得原始字符集的确切字节长度。

2 个答案:

答案 0 :(得分:1)

请参阅this answer将字符串转换为字节(tl; dr使用.getBytes()),然后调用.length属性以获取字符串中的字节数。

答案 1 :(得分:0)

以上解决方案不适合处理7位ASCII字符集或UTF-7。在UTF-7中,流中的每个字符以7位而不是8位表示。所以我们可以使用UTF-7字符编码在140字节中发送160个字符。但是当使用getBytes(" UTF-7")。对160个字符的inputString的长度函数时,我们得到160字节而不是140字节。