美文网首页
Java&编码&Unicode

Java&编码&Unicode

作者: 最好现在开始 | 来源:发表于2016-01-25 10:28 被阅读0次

    编码、解码:定义了字符转换为二进制(1到n个字节)的规则。当需要存储的时候才需要进行编码,当需要在屏幕上显示字符的时候才需要进行解码。这里不考虑从一种编码到另一种编码的编解码过程。

    Unicode编码:utf-8(一个字符用1到4个字节表示)、utf-16(一个字符用2个或者4个字节表示)、uft-32(一个字符用4个字节表示)。

    .java文件:就是一个普通的文本文件,可以设置成任意编码,只要编译器能够识别

    .class文件:编译器用.java生成的二进制文件,.java文件中的字符串(类名、变量名、函数名、字符串常量等)都以utf-8编码存储在.class文件中。

    jvm运行时:加载.class文件,使用utf-8编码读取.class文件,并把字符串转化为utf16编码放置在内存中。(所以java支持中文变量、中文方法名等。)

    char类型:char类型固定占两个字节,打印char常量的时候使用UCS-2(UCS-2可以看作是utf16中占两个字节的编码的部分)解码

    String.getBytes(Charset):jvm字符串在内存中都是utf16存储,当调用getBytes时会转换为指定的编码格式并返回。

    相关文章

      网友评论

          本文标题:Java&编码&Unicode

          本文链接:https://www.haomeiwen.com/subject/wjarkttx.html