Java基础——IO流之字符集

这篇具有很好参考价值的文章主要介绍了Java基础——IO流之字符集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)IO前置内容:字符集

1.字符集基础知识:

  • 计算机底层不可以直接存储字符,只能存储二进制(0,1)。
  • 二进制可以转换成十进制。
  • 计算机底层可以表示十进制编号。计算机可给人类字符进行编号存储,这套编号规则就是字符集。

2.ASCII字符集:(1字节)

  • ASCII(American Standard Code for Information Interchange,美国信息交换标准代码):包括了数字,英文,符号。
  • ASCII使用1个字节存储一个字符,一个字节是8位,总共可以表示128个字符信息,对于英文,数字来说是够用的。

3.GBK:(2字节)

  • window系统默认的码表,兼容ASCII码表,也包含了几万个汉字,并支持繁体汉字以及部分日韩文字。
  • 注意:GBK是中国的码表,一个中文以及两个字节的形式存储。但不包含世界上所有国家文字。

4.Unicode码表:(UTF-8:3字节)

  • unicode(又称统一码,万国码,单一码)是计算机科学领域里的一项业界字符编码标准。
  • 容纳世界上大多数国家的所有常见文字和字符。
  • 由于Unicode会通过UTF-8,UTF-16,以及UTF-32的编码成二进制后再存储到计算机,其中最为常见的就是UTF-8。
  • 汉字存储/展示原理:存储:首先将汉字通过Unicode表查询,找到在码表中对应的数字通过UTF-8编码转换成二进制存储到计算机。展示:读取二进制,UTF-8解码,通过码表中对应的数字,到Unicode码表中查询,再展示。
  • 注意:
    • Unicode是万国码,以UTF-8编码后一个中文一般以三个字节的形式存储。
    • UTF-8也要兼容ASCII编码表。
    • 技术人员都应该使用UTF-8的字符集编码。
    • 编码前和编码后的字符集需要一致,否则会出现中文乱码。

5. String编码

方法名称 说明
byte[] getBytes() 使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中。
byte[] getBytes(String charsetName) 使用指定的字符集将该String编码为一系列字节,将结果存储到新的字节数组中。

6.String解码

构造器 说明
String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的String.
String(byte[] bytes,String charsetName) 通过指定的字符集解码指定的字节数组来构造新的String

7.String编码解码代码实现:文章来源地址https://www.toymoban.com/news/detail-416792.html

import java.util.Arrays;
/**
 * 编码,解码
 */
public class Test01 {
    public static void main(String[] args) throws Exception {
        //1.编码:把文字转换成字节
        String name = "abc认真学习";
//        byte[] bytes = name.getBytes();//默认字符集编码 UTF-8
        byte[] bytes = name.getBytes("GBK");//指定字符集编码 GBK
        System.out.println(Arrays.toString(bytes));

        //2.解码:字节转换成对应中文(注意:编码前和编码后的字符集必须一致)
//        String rs = new String(bytes);//默认 UTF-8
        String rs = new String(bytes,"GBK");//指定 GBK
        System.out.println(rs);
    }
}

到了这里,关于Java基础——IO流之字符集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【华为OD机考 统一考试机试C卷】 全量和已占用字符集 、字符串统计(C++ Java JavaScript Python)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D卷,其中C卷居多 ,按照之前的经验C卷部分考题会复用A卷,B卷题,博主正积极从考过的同学收集C卷和D卷真题。

    2024年02月05日
    浏览(28)
  • MySQL 字符集概念与原理及如何配置字符集 - 超详细图文详解

    目录 一、字符集概念 1、字符(Character) 2、字符编码 3、字符集(Character set) 二、字符集原理 1、ASCII字符集 2、GB2312 3、GBK 4、GB18030 5、BIG5 6、Unicode 编码 三、字符序 四、MySQL字符集 字符序 1、mysql 字符集 2、mysql 字符序 3、字符集与字符序的关系 五、MySQL 数据存储字符集

    2024年02月04日
    浏览(40)
  • (二)java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

    不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK (一)SQL state [99999]; error code [17056]; 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK; nested exception (二)java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK java.sql.SQLException: 不支持的字符集 (在类路

    2024年02月09日
    浏览(27)
  • 算法加密与解密、字符编码与字符集

    加密保证数据不会被窃取或者修改 哈希算法 压缩映射 :散列又称为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。 哈希算法(Hash)又称摘要算法(Digest),哈希算法的目的就是为了验证原始数据是否被篡改。 主流的散列算法有MD5和

    2024年02月03日
    浏览(36)
  • 有限字符集的字符串压缩算法

    在开发中,经常有上报线上堆栈来分析处理线上问题的场景,所以,对堆栈的压缩和加密也是必不可少的。加密:可以使用AES对称加密算法,压缩:可以在上传时利用protobuf天生的压缩性对字符串进行压缩。 不过,出于对流量的节省和传输效率的提升,可以通过在堆栈上传前

    2024年02月11日
    浏览(45)
  • 字符集详解

    计算机底层不可以直接存储字符的。 计算机中底层只能存储二进制(0、1) 。 二进制是可以转换成十进制的。 结论:计算机底层可以表示成十进制编号。计算机可以给人类字符进行编号存储,这套编号规则就是字符集。 ASCII(American Standard Code for Information Interchange,美国信息交

    2024年02月07日
    浏览(30)
  • Linux字符集详解

    计算机中处理和储存信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。通俗的说,按照某种规则将字符存储在计算机中,如’a’用97表示,称为\\\"编码\\\";反之,将计算机中的二进制数解析显示出来,称为\\\"解码\\\"。在解码过程中,

    2024年02月06日
    浏览(37)
  • (三) MySQL字符集

    MySQL字符集包括 基字符集 (CHARACTER)与 校对规则 (COLLATION)这两个概念: latin1支持西欧字符、希腊字符等 gbk支持中文简体字符 big5支持中文繁体字符 utf8几乎支持世界所有国家的字符 utf8mb4是真正意义上的utf-8 查看当前数据库默认的字符集: SHOW VARIABLES like \\\'character%\\\'; MySQL在

    2024年01月24日
    浏览(47)
  • oracle 字符集

      NLS_NCHAR_CHARACTERSET  国家字符集 NLS_CHARACTERSET  字符集 -----字符集和国家字符集的区别 字符集用来存储CHAR,VARCHAR2,CLOB,LONG等类型数据。 国家字符集用以存储NCHAR,NVARCHAR2,NCLOB等类型数据。

    2024年01月24日
    浏览(32)
  • HTML 字符集

    HTML5 中的默认字符集为 UTF-8。 数字 ASCII ANSI 8859-1 UTF-8 描述 32 space 33 ! ! ! ! exclamation mark 34 \\\" \\\" \\\" \\\" quotation mark 35 # # # # number sign 36 $ $ $ $ dollar sign 37 % % % % percent sign 38 ampersand 39 \\\' \\\' \\\' \\\' apostrophe 40 ( ( ( ( left parenthesis 41 ) ) ) ) right parenthesis

    2023年04月25日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包