Internet 标准及许多关于 TCP/IP 的书中, 经常能看到 octet(8位组) 这个词, 你可能会想, 为何不直接用 byte 呢?

原来早期 TCP/IP 的一些工作是在像 DEC-10 这类的系统上完成的, 而这些系统里, 一个字节(byte)并不是 8 位的! 是不是觉得很奇怪呢?

当然, 现在的系统基本字节都是 8 bit 的了.

--<<TCP/IP>>

Java 语言中一个字符占几个字节?

一个字符占几个字节? 很多人喜欢问这个问题, 遗憾的是他们没有意识到这其实是一个糟糕的问题, 因为它缺乏了必要的前提...

这是一个来自知乎上的问题, https://www.zhihu.com/question/27562173 , 提问者问:

Java 中理论说是一个字符(汉字 字母)占用两个字节. 但是在 UTF-8 的时候 new String("字").getBytes().length 返回的是 3 表示 3 个字节 小白求回答. .

严格地讲, 这个问题本身就是有问题的, 因为它缺少了前提, 在我的回答中我也强调了这一点, 回答具体如下:

首先, 你所谓的"字符"具体指什么呢? 如果你说的"字符"就是指 Java 中的 char, 那好, 那它就是 16 位, 2 字节.

如果你说的"字符"是指我们用眼睛看到的那些"抽象的字符", 那么, 谈论它占几个字节是没有意义的.

具体地讲, 脱离具体的编码谈某个字符占几个字节是没有意义的.

继续阅读