字符和编码简单入门

2020-12-30  本文已影响0人  trump2018

字符和编码入门

1. 字符(Base Java)

2. 字符编码

由于我们的文字中存在着大量的重复字符,而计算机天生就是用来处理数字的,为了减少我们需要保存的信息量,我们可以使用一个数字编码来表示每一个字符,通过对每一个字符规定一个唯一 的数字代号, 然后,对应每一个代号,建立其相对应的图形,这样,在每一个文件中,我们只需要保存每一个 字符的编码就相当于保存了文字,在需要显示出来的时候,先取得保存起来的编码,然后通过编码表,我们可以查到字符对应的图形,然后将这个图形显示出来,这样我们就可以看到文字了,这些用来规定每一一个字符所使用的代码的表格,就称为编码表。编码就是对我们日常使用字符的一种数字编号。

3. ASCII 美国信息交换标准代码

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符

image.png

4. 使用Java代码的字符例子

4.1 字符转换

public class main {
    public static void main(String args[]) {
        //1. 打印字符
        char c = 'A';
        System.out.println(c);
        //2. 字符和整数转
        System.out.println((int)c);
        //3. 数字到字符
        System.out.println((char)'\u0041');
    }
 }

A 65 A

4.2 打印所有ASCII

public class main {
    public static void main(String args[]) {
         printAscii();
    }
    static void printAscii(){
        for (int i = 0; i < 128; i++) {
            if (i % 10 == 0) {
                System.out.println();
            }
            System.out.print(String.format("%3d:%c ", i, (char)i));
        }
    }
  0:   1:   2:   3:   4:   5:   6:   7:   8   9:     
 10:
  14:  15:  16:  17:  18:  19: 
 20:  21:  22:  23:  24:  25:  26:  27:  28:  29: 
 30:  31:  32:   33:!  34:"  35:#  36:$  37:%  38:&  39:' 
 40:(  41:)  42:*  43:+  44:,  45:-  46:.  47:/  48:0  49:1 
 50:2  51:3  52:4  53:5  54:6  55:7  56:8  57:9  58::  59:; 
 60:<  61:=  62:>  63:?  64:@  65:A  66:B  67:C  68:D  69:E 
 70:F  71:G  72:H  73:I  74:J  75:K  76:L  77:M  78:N  79:O 
 80:P  81:Q  82:R  83:S  84:T  85:U  86:V  87:W  88:X  89:Y 
 90:Z  91:[  92:\  93:]  94:^  95:_  96:`  97:a  98:b  99:c 
100:d 101:e 102:f 103:g 104:h 105:i 106:j 107:k 108:l 109:m 
110:n 111:o 112:p 113:q 114:r 115:s 116:t 117:u 118:v 119:w 
120:x 121:y 122:z 123:{ 124:| 125:} 126:~ 127:� 

5. 扩展ASCII – ISO8859-(1-9)

由于ASCII 的限制性,西欧各国制定了ISO-8859 编码。

ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
此字符集支持部分于欧洲使用的语言。

包括阿尔巴尼亚语、巴斯克语、布列塔尼语、加泰罗尼亚语、丹麦语、荷兰语、法罗语、弗里西语、加利西亚语、德语、格陵兰语、冰岛语、爱尔兰盖尔语、意大利语、拉丁语、卢森堡语、挪威语、葡萄牙语、里托罗曼斯语、苏格兰盖尔语、西班牙语及瑞典语。

image.png

6. 中文编码

GB/T 2312,GB/T 2312–80 或 GB/T 2312–1980 是中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,通常简称GB(“国标”汉语拼音首字母),又称GB0,由中国国家标准总局于1980年发布,1981年5月1日实施。GB/T 2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB/T 2312。

汉字内码扩展规范,称GBK,全名为《汉字内码扩展规范(GBK)》1.0版,由中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订,国家技术监督局标准化司和电子工业部科技与质量监督司1995年12月15日联合以《技术标函[1995]229号》文件的形式公布。 GBK共收录21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号883个。

7. Unicode

Unicode,中文又称万国码、国际码、统一码、单一码,是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。

Unicode伴随着通用字符集的标准而发展,同时也以书本的形式[1]对外发表。Unicode至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为2020年3月公布的13.0.0[2],已经收录超过13万个字符(第十万个字符在2005年获采纳)。Unicode涵盖的资料除了视觉上的字形、编码方法、标准的字符编码外,还包含了字符特性,如大小写字母。

7.1 汉字Unicode范围

image.png

8. 打印所有unicode

static void printUnicode() {
    StringBuilder sb = new StringBuilder();
    for(int i=0; i< 0xFFFF; i ++) {
        if (i % 50 == 0) {
            sb.append("\r\n");
        }
        sb.append(String.format("%3c", (char)i));
    }
    System.out.print(sb);
}

9. UTF

上一篇下一篇

猜你喜欢

热点阅读