【问题标题】:Why single byte is returned for single char when string is converted为什么转换字符串时为单个字符返回单个字节
【发布时间】:2017-03-23 12:33:52
【问题描述】:

据我所知,java 中的 char 是由 2 个字节构建的,那么为什么这个测试通过了?

assertEquals(4, "test".getBytes(Charset.forName("UTF-8")).length);

【问题讨论】:

标签: java


【解决方案1】:

在 UTF-8 中,0x00 到 0x7F 范围内的字符只有 1 个字节。因此,它有 4 个字节长。

"test".getBytes(Charset.forName("UTF-16")

..将返回 8 个字节。

编辑:添加了@Rossums 评论以获取更多详细信息。

【讨论】:

  • 在 0x00 到 0x7F 范围内的 UTF-8 字符是单个字节。除此之外,它们是两个或更多字节。
  • 谢谢,我已经添加了额外的细节。
猜你喜欢
  • 2012-07-26
  • 1970-01-01
  • 2011-03-14
  • 2014-04-29
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 2013-10-21
  • 2012-11-24
相关资源
最近更新 更多