答:char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法), 一个 char 类型占 2 个字节(16bit),所以放一个中文是没问题的。
不完全对,有很多汉字在Unicode编码中是大于2个字节的。
字符集 | 字数 | Unicode 编码 |
基本汉字 | 20902字 | 4E00-9FA5 |
基本汉字补充 | 90字 | 9FA6-9FFF |
扩展A | 6592字 | 3400-4DBF |
扩展B | 42720字 | 20000-2A6DF |
扩展C | 4154字 | 2A700-2B739 |
扩展D | 222字 | 2B740-2B81D |
扩展E | 5762字 | 2B820-2CEA1 |
扩展F | 7473字 | 2CEB0-2EBE0 |
扩展G | 4939字 | 30000-3134A |
扩展H | 4192字 | 31350-323AF |
康熙部首 | 214字 | 2F00-2FD5 |
部首扩展 | 115字① | 2E80-2EF3 |
兼容汉字 | 472字② | F900-FAD9 |
兼容扩展 | 542字 | 2F800-2FA1D |
汉字笔画 | 36字 | 31C0-31E3 |
汉字结构 | 12字 | 2FF0-2FFB |
汉语注音 | 43字 | 3105-312F |
注音扩展 | 32字 | 31A0-31BF |
〇 | 1字 | 3007 |
Unicode 版本:15.0
字数备注:
① 部首扩展:2E9A 是空码位。
② 兼容汉字:FA6E、FA6F 是空码位。
此页面的字数按实际字数标示(排除空码位),编码范围则排除了首尾空码位。另一个页面《世界文字大全》的编码范围标注则与 Unicode 一致(包括空码位)。
关于UTF-8编码的优点:
UTF-8
UTF-8的特点是对不同范围的字符使用不同长度的编码。