zoukankan      html  css  js  c++  java
  • java基础52 编码与解码

    1、解码与编码的含义

        编码:把看得懂的字符变成看不懂的码值,这个过程就叫编码
        解码:根据码值查到相对应的字符,我们把这个过程就叫解码

    注意:编码与解码时,我们一般使用统一的码表,否则非常容易出现乱码

    2、常见的码表

        1. ASCII:美国标准信息交换码。用一个字节的7位可以表示。
        2. ISO8859-1:拉丁码表。欧洲码表,用一个字节的8位表示。
        3. GB2312:英文占一个字节,中文占两个字节.中国的中文编码表。
        4.GBK:中国的中文编码表升级,融合了更多的中文文字符号。
        5.Unicode:国际标准码规范,融合了多种文字。所有文字都用两个字节来表示,Java语言使用的就是unicode。
        6.UTF-8:最多用三个字节来表示一个字符。
    我们接触最多的是iso8859-1、gbk、utf-8三种编码

    注意:ASCII码用7位表示一个字符,共128个字符,不够256个。 ISO-8859-1码是ASCII码的拓展,用8位表示一个字符,共256个字符。即:ISO8859-1码包含ASCII码

    3、实例

     1 package com.dhb.file;
     2 
     3 import java.io.IOException;
     4 import java.util.Arrays;
     5 
     6 /**
     7  * @author DSHORE / 2018-7-19
     8  *
     9  */
    10 public class Demo26 {
    11     public static void main(String[] args) throws IOException {
    12         String str1 = "中国";
    13         byte[] buf1 = str1.getBytes("utf-8");//MyEclipse控台默认的是gbk编码
    14         System.out.println("数组(utf-8):"+Arrays.toString(buf1));
    15         
    16         str1 = new String(buf1,"utf-8");
    17         System.out.println(str1);
    18         str1 = new String(buf1,"gbk");
    19         System.out.println(str1);//乱码,因为编码时用utf-8,解码时用gbk
    20         
    21         String str2 = "a我爱中国";
    22         byte[] buf2 = str2.getBytes("Unicode");//编码与解码的时候指定的码表Unicode实际上就是用utf-16
    23         System.out.println("数组(Unicode):"+Arrays.toString(buf2));
    24         
    25         String str3 = "大家好";
    26         byte[] buf3 = str3.getBytes();//默认使用gbk进行编码
    27         //System.out.println(Arrays.toString(buf3));
    28         str3 = new String(buf3,"ISO8859-1");
    29         System.out.println(str3);//乱码,因为编码时用gbk,解码时用ISO8859-1
    30         //出现乱码之后可以还原吗?
    31         byte[] buf4 = str3.getBytes("ISO8859-1");
    32         str3 = new String(buf4,"gbk");
    33         System.out.println(str3);
    34         //出现乱码之后都可以还原吗?     答:不一定能,例如:ASCII码和ISO8859-1码(有一部分不能)。因为ISO8859-1包含ASCII
    35     }
    36 }

    运行结果图

    原创作者:DSHORE

    作者主页:http://www.cnblogs.com/dshore123/

    原文出自:https://www.cnblogs.com/dshore123/p/9340285.html

    欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

  • 相关阅读:
    20200226 Java IO流——廖雪峰
    20200225 Java 多线程(2)-廖雪峰
    20200225 Java 多线程(1)-廖雪峰
    20200224 尚硅谷ElasticSearch【归档】
    20200224 一 概述
    20200222 尚硅谷Dubbo【归档】
    20200222 四、dubbo原理
    Improved robustness of reinforcement learning policies upon conversion to spiking neuronal network platforms applied to Atari Breakout game
    Reinforcement learning in populations of spiking neurons
    Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling
  • 原文地址:https://www.cnblogs.com/dshore123/p/9340285.html
Copyright © 2011-2022 走看看