• Java基础知识强化之IO流笔记31:转换流出现的原因和格式


    1. 由于字节流操作中文不是特别方便,所以Java就提供了转换流

     字符流 = 字节流 + 编码表

    2. 编码表

    由字符及其对应数值组成的一张表

    常见的编码表:

    • ASCII/Unicode字符集

    • ISO-8859-1

    • GB2312/GBK/GB18030

    • BIG5

    • UTF-8

    3. String类中编码和解码问题:

    (1)String中使用构造方法:(解码

    String(byte[] bytes, String charsetName)
              通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String

    解码:把看不懂的变成看得懂的

     byte[] -- String

    (2)String中使用功能方法:(编码

    byte[] getBytes(String charsetName)

        使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

    编码:把看得懂的变成看不懂的
     String -- byte[]

     

    (3)代码示例:

     1 package cn.itcast_01;
     2 
     3 import java.io.UnsupportedEncodingException;
     4 import java.util.Arrays;
     5 
     6 /*
     7  * String(byte[] bytes, String charsetName):通过指定的字符集解码字节数组
     8  * byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组
     9  * 
    10  * 编码:把看得懂的变成看不懂的
    11  * String -- byte[]
    12  * 
    13  * 解码:把看不懂的变成看得懂的
    14  * byte[] -- String
    15  * 
    16  * 举例:谍战片(发电报,接电报)
    17  * 
    18  * 码表:小本子
    19  *         字符    数值
    20  * 
    21  * 要发送一段文字:
    22  *         今天晚上在老地方见
    23  * 
    24  *         发送端:今 -- 数值 -- 二进制 -- 发出去
    25  *         接收端:接收 -- 二进制 -- 十进制 -- 数值 -- 字符 -- 今
    26  * 
    27  *         今天晚上在老地方见
    28  * 
    29  * 编码问题简单,只要编码解码的格式是一致的。
    30  */
    31 public class StringDemo {
    32     public static void main(String[] args) throws UnsupportedEncodingException {
    33         String s = "你好";
    34 
    35         // String -- byte[]
    36         byte[] bys = s.getBytes(); // [-60, -29, -70, -61]
    37         // byte[] bys = s.getBytes("GBK");// [-60, -29, -70, -61]
    38         // byte[] bys = s.getBytes("UTF-8");// [-28, -67, -96, -27, -91, -67]
    39         System.out.println(Arrays.toString(bys));
    40 
    41         // byte[] -- String
    42         String ss = new String(bys); // 你好
    43         // String ss = new String(bys, "GBK"); // 你好
    44         // String ss = new String(bys, "UTF-8"); // ???
    45         System.out.println(ss);
    46     }
    47 }
  • 相关阅读:
    如何进行函数式编程
    HTML文本格式化
    非模态对话框的创建及注意事项
    中国第一代程序员列传
    野指针
    缓冲区溢出攻击
    windows全部启动项
    HTML 样式
    Volatile关键字
    HTML基本标签
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4862891.html
Copyright © 2020-2023  润新知