开发者社区> 问答> 正文

java的char类型只有两个字节为什么可以存储汉字?

java的char类型,只有两个字节,在采用utf-8编码时,为什么可以存储汉字?

展开
收起
蛮大人123 2016-03-10 17:07:25 5416 0
2 条回答
写回答
取消 提交回答
  • 因为Java使用unicode字符集。在unicode中,每一个字符都有一个码位,与字符编码无关,而中文刚好在两个字符范围内,具体可见: http://www.unicode.org/charts/PDF/U2FF0.pdf ,两个字符最多可表示65535个字符,所以如果找一个在65535以上范围内的Unicode字符使用char就会报错了。
    2019-07-17 18:57:58
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    Unicode是一种字符集(charset),用两个字节就能囊括世界上所有的文字集合。
    UTF-8是一种编码方式(encoding),是Unicode的一种表现方式。
    在一个Java文件(该文件为UTF-8编码)里面写上这样一句话
    char a = '猿';
    编译后生成的class文件会把'猿'转化成Unicode的两字节。
    理解字符集和字符编码的区别,有助于题主理解这些问题。

    2019-07-17 18:57:58
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载