JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

8、char为什么能存贮一个汉字?(char为什么是一个字节)

wys521 2025-05-08 21:49:30 精选教程 11 ℃ 0 评论

1、char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了全世界所有的字体。



2、char类型描述了UTF-16编码中的一个代码单元,程序中不建议使用,最好将字符串作为抽象数据类型处理。

3、Unicode编码:将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,解决了乱码问题。就像它的名字表示的,这是一种所有符号的编码。

4、Unicode标准定义了三种编码形式,允许同一个数据以一字节、两字节或四字节的格式来传输(即每个代码单元可以是8比特、16比特或32比特)。同一个字符集可以使用所有三种编码形式,它们之间可以互相转换,而不会丢失数据。Unicode联盟建议根据实际需要,选择任何一种方便的编码方式来实现Unicode标准。

UTF-8在HTML和类似协议上非常常用。UTF-8使用变长编码。它的优点是,对应于ASCII字符集的那些Unicode字符的字节值与它们在ASCII中的值完全相同,因此使用UTF-8编码的Unicode字符可以在绝大多数已有软件上使用,无需对软件做出任何修改。

UTF-16在许多需要平衡性能和存储效率的环境中非常常用。它足够紧凑,所有常用的字符都可以用一个16比特的代码单元来表示,其他字符可以使用一对16比特代码单元来表示。

UTF-32在无需顾虑内存空间的情况下使用,它是定长编码,每个字符只有一个代码单元。每个Unicode字符编码成一个32比特代码单元。

5、JVM内部都是Unicode,当这个字符被从JVM内部转移到外部时(例如存入文件系统中),需要进行编码转换。所以JAva中有字节流和字符流,以及字符流和字节流之间进行转换的转换流,如InputStreamReader和OutputStreamReader,这两个类时字节流和字符流之间的适配器类,承担了编码转换的任何

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表