首页 > 编程知识 正文

char数据类型占几个字节,char占几个字节数

时间:2023-05-05 07:40:06 阅读:178557 作者:3362

在讨论这个问题之前,必须区分unicode和UTF。

unicode:仅提供字母和数字映射的统一字符编号。 符号的数量持续增加,已经超过了百万。 详细信息: [ https://zh.Wikipedia.org/zh-cn/unicode ] 3358 www.Sina.com/: unicode转换格式(unicode transformation format ) 定义编号在unicode中的编码方式。 utf8和utf16是那两种实现方式。 这里,utf8是可变长度显示,在长度可能情况下为1~6字节; utf16是可变长度表示,长度可能是2或4字节。 详细情况: utf8 [ https://zh.Wikipedia.org/zh-cn/utf-8 ] ut F16 [ https://zh.Wikipedia.org/zh-cn/utf-16 ]然后贴内码

UTF:以某种语言运行时char和string在内存中的编码方式。内码:除内码以外为外码。 请注意,编译源代码生成的目标代码文件(可执行文件或类文件)的编码方式是外部代码。

先看看内码吧

JVM中内码采用UTF16。 早期,UTF16采用固定长度的双字节编码,两个字节可以表示65536种符号,足以表示当时unicode中的所有字符。 但是,随着unicode中字符的增加,双字节不能表示所有字符,而UTF16使用双字节或四字节完成编码。 为了解决这种情况,考虑到前向兼容性要求,Java用一对char表示需要4个字节的字符。 因此,Java char占用两个字节,但某些字符需要两个char。

详细信息:

[ https://docs.Oracle.com/Java se/tutorial/i18n/text/unicode.html ]

[ http://www.zhi Hu.com/question/27562173 ]

外码

Java的class文件采用UTF8来存储字符。 也就是说,在class中字符占1~6个字节。

Java序列化时,字符也采用UTF8编码,占1~6个字符。

总结:

java中内码(执行内存)的char采用UTF16格式编码,一个char占用两个字节,但有些字符必须用两个char表示。 因此,一个字符占用2或4个字节。 在java中外代码中,char用UTF8格式编码,一个字符占用1到6个字节。 在UTF16编码中,英语字符占2个字节。 大部分汉字,特别是常用汉字占2个字节,单个汉字(后期增加unicode码的汉字,常见的冷僻字)占4个字节。 在UTF8编码中,英语字符占用一个字节。 大多数汉字占3个字节,单个汉字占4个字节。 EOF

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。