java中的编码

作者: 篱开罗 | 来源:发表于2017-03-07 15:41 被阅读368次
  1. 字库表:相当于所有可读或者可显示字符的数据库
  2. 编码字符集(编码):用一个编码值来表示一个字符在字库中的位置
  3. 字符编码(编码格式):把编码值转换成另外一种存储格式

Unicode就是上文中提到的编码字符集,而UTF-8就是字符编码,即Unicode规则字库的一种实现形式。

编码字符集为字库表中的字符位置编码,两者一一对应,由于很多时候只使用到字库中的一部分字符,若使用编码字符集则会造成浪费,故使用字符编码

java的string使用的编码是unicode,但是在存储到外存或者通过网络传输前没有编码格式

  • java字符串编码
public static void main(String[] args) throws IOException {

        String s = "篱开罗A";

        //不指定则使用项目默认字符编码将字符串转换位字节数组
        byte[] bytesWithUTF8 = s.getBytes();
        //指定使用GBK编码格式
        byte[] bytesWithGBK = s.getBytes("GBK");

        //不指定字符编码,默认使用项目字符编码,此处是UTF-8
        System.out.println(new String(bytesWithUTF8));
        for (byte b : bytesWithUTF8) {
            //toHexString接收的参数为int,此处byte被强制转换成int,& 0xff去除高24位
            //UTF-8每个中文使用三个字节,字母一个字节
            System.out.print(Integer.toHexString(b & 0xff) + " ");
        }
        System.out.println();

        //指定使用GBK进行解码
        System.out.println(new String(bytesWithGBK,"GBK"));
        for (byte b : bytesWithGBK) {
            // GBK每个中文使用两个字节,字母一个字节
            System.out.print(Integer.toHexString(b & 0xff) + " ");
        }
        System.out.println();


        //原本UTF-8编码格式的字节数组被指定使用GBK进行解码,得到乱码
        String errStr = new String(bytesWithUTF8, "GBK");
        //对错误字符串使用GBK进行编码,获取原字节数组
        byte[] bytes = errStr.getBytes("GBK");
        //使用UTF-8编码格式进行解码
        String rightStr = new String(bytes, "UTF-8");
        System.out.println("errStr: " + errStr);
        System.out.println("rightStr: " + rightStr);
    }

reference

十分钟搞清字符集和字符编码

java中GBK编码格式转成UTF8,用一段方法实现怎么做?

Java IO流

相关文章

  • Base64编码

    在Java 8中,Base64编码已经成为Java类库的标准。 Java 8 内置了 Base64 编码的编码器和...

  • 自定义Mybatis框架思路总结

    JDBC的弊端: 1.数据库信息硬编码到Java代码中 2.sql语句硬编码到Java代码中 ...

  • JavaWeb之五——Java编码、编译及类加载器

    Java中编码 为何编码? 如何编码? ASCII编码 ISO-8859-1 GB2312 GBK GB18030...

  • java中的编码

    字库表:相当于所有可读或者可显示字符的数据库编码字符集(编码):用一个编码值来表示一个字符在字库中的位置字符编码(...

  • Java字符串编码原理以及乱码解决方法

    1 Java字符串编码原理   在Java中,字符的数据类型是char,而char类型的编码是 Unicode 编...

  • 编码

    参考:字符编码常识及问题解析深入分析 Java 中的中文编码问题 关于字符编码,你所需要知道的 编码是什么? 编码...

  • 字符、编码和Java中的编码

    字符是用户可以读写的最小单位。计算机所能支持的字符组成的集合,就叫做字符集。字符集通常以二维表的形式存在。二维表的...

  • Java I/0输入输出流、文件基础

    1、Java编码基础 对于Java文件中,是采用的双字节编码utf-16be; 其中,中文占用2个字节,英文占用2...

  • Java中的字符编码

    字符与编码 人类使用的是字符,计算机存储的是比特,要想在计算机中存储字符就必须进行编码。从字符到比特序列的过程为编...

  • Java 中的 Unicode 编码

    1. .java 文件和 .class 文件的字符编码 java 源文件 (.java) 和编译后的 .class...

网友评论

    本文标题:java中的编码

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