深入理解计算机编码与字符集的区别 您所在的位置:网站首页 计算机中字符编码的表示方法有 深入理解计算机编码与字符集的区别

深入理解计算机编码与字符集的区别

2023-06-24 21:13| 来源: 网络整理| 查看: 265

1、编码表与字符集的区别

比如,unicode是字符集(万国码),但计算机如何存储编码(几个字节存储),这时候要用到编码规则(UTF-8)

举例:

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件

utf-8中文3个字节,英文1个字节。gbk中文2个字节,英文1个字节。

2、ASCII扩展码字符和GBK混合写入文件

使用Java IO流同时将欧元符€和汉字写入文件。

FileOutputStream out = new FileOutputStream("E:/tmp/character.txt"); out.write("你好啊".getBytes("GBK")); // 不能以这种方式写 // out.write("€".getBytes("GBK")); out.write(128); out.close();

将文件传到linux上之后,执行命令cat test1.txt|od -c,€会显示成200(od表示使用八进制显示),此时说明是正确的

3、Java中关于ASCII扩展码字符的处理 char c = 251; // 扩展ASCII码中字符√的编码 System.out.println(c); // û// 扩展ASCII不是国际标准,编码为251的字符,就不是√,而是û。而√对应的unicode编码是8730,输出8730才能得到√ System.out.println((int)'√'); // 8730 System.out.println((char)8730); // √// 输出扩展ASCII码中字符€的unicode编码 System.out.println((int)'€'); System.out.println((char)8364);

注意:java中使用unicode字符表示字符串时,是十六进制,如下代码所示。

System.out.println("\u20AC"); // €的unicode码的十六进制

针对扩展的ASCII码,不同的国家有不同的字符集,所以它并不是国际标准。

参考链接:

字符编码中ASCII、Unicode和UTF-8的区别 - 风行风中 - 博客园

ANSI是什么编码?_imxiangzi的专栏-CSDN博客_ansi编码



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有