这是一个来自知乎上的问题, https://www.zhihu.com/question/27562173 , 提问者问:
Java 中理论说是一个字符(汉字 字母)占用两个字节. 但是在 UTF-8 的时候
new String("字").getBytes().length
返回的是 3 表示 3 个字节 小白求回答. .
严格地讲, 这个问题本身就是有问题的, 因为它缺少了前提, 在我的回答中我也强调了这一点, 回答具体如下:
首先, 你所谓的"字符"具体指什么呢? 如果你说的"字符"就是指 Java 中的 char, 那好, 那它就是 16 位, 2 字节.
如果你说的"字符"是指我们用眼睛看到的那些"抽象的字符", 那么, 谈论它占几个字节是没有意义的.
具体地讲, 脱离具体的编码谈某个字符占几个字节是没有意义的.