【问题标题】:Byte length of string in different character sets不同字符集中字符串的字节长度
【发布时间】:2014-09-04 07:22:08
【问题描述】:

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

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

【问题讨论】:

标签: java string character-encoding


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2017-08-19
      • 1970-01-01
      相关资源
      最近更新 更多