zoukankan      html  css  js  c++  java
  • JAVA 编码机制

    先看例子:

    public class Test {
    
        public static void main(String[] args) {
            char han = '永';
            
            System.out.println((short)han); //输出27704
            //以十六进制输出
            System.out.format("%x", (short)han);//输出6c38
            System.out.println();
            
            
            char han2 = 0x6c38;
            System.out.println(han2);//输出永
        }
    }

    JVM编码:
    JVM内部统一用Unicode,编码只发生在JVM和OS文件系统交界的地方。

    所有的IO基本上可以分为面向字符和面向字节

    面向字符是指不管你采用什么编码机制,我保存‘永’这个字符时,读出来还是‘永’字

    面向字节的话就要保证系统中文件的二进制内容和JVM内部的二进制内容一致,不能变换0和1的位置,这种方式很适合读入视频文件和音频文件

    JAVA中的Reader和Writer使用默认的编码机制,而且不能任意更改,比如使用中文版的windows,那么Reader和Writer默认使用的是GBK 的编码方式,

    如果读取一个UTF-8编码的文件,那么就会乱码。如果使用到GBK编码以外的文件,就必须采用编码转换:一个字符与字节的转换,那就是InputStreamReader和OutputStreamWriter了。这两个类是字节流和字符流的适配器。

  • 相关阅读:
    洛谷 P1941 飞扬的小鸟
    洛谷P2464 [SDOJ2008]郁闷的小J
    [cogs2314][HZOI 2015] Persistable Editor
    [vijos1067]Warcraft III 守望者的烦恼
    【vijos1049】送给圣诞夜的礼品
    [cogs347]地震
    gcc 编译多个源文件
    2_兔子产仔问题
    1_鸡兔同笼问题
    LeetCode(61) Rotate List
  • 原文地址:https://www.cnblogs.com/mynona/p/3603869.html
Copyright © 2011-2022 走看看