美文网首页
字符和编码简单入门

字符和编码简单入门

作者: trump2018 | 来源:发表于2020-12-30 13:14 被阅读0次

    字符和编码入门

    1. 字符(Base Java)

    • char存储字符。表示System.Char 类型的一个实例。
      Java使用Unicode来表示字符。
    • 使用Unicode简化了全球应用程序的开发。
    • Unicode可以表示在所有人类语言中找到的所有字符。
    • Java char是16位类型。

    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. 中文编码

    • GB2312

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

    • GB 18030
      全称《信息技术 中文编码字符集》,是中华人民共和国国家标准所规定的变长多字节字符集。其对GB 2312-1980完全向后兼容,与GBK基本向后兼容,并支持Unicode(GB 13000)的所有码位。GB 18030共收录汉字70,244个。

    7. Unicode

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

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

    • Unicode是为了解决传统的字符编码方案的局限而产生的
    • 它为每种语言中的每个字符设定了统一并且唯一的二进制编码
    • Unicode 占 2 个字节
    • 最大值 0xFFFF

    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

    • UTF,是Unicode Transformation Format的缩写
      UTF 是 为了解决已有字符集不支持unicode的方案. 是一种针对Unicode的可变长度字符编码
      意为Unicode转换格式

    • UTF-8是UTF中最常用的转换格式
      是UNICODE的一种变长字符编码
      现在已经标准化为RFC 3629
      被广泛使用

    • 其它UTF编码
      UTF-8、UTF-16、UTF-3 、 UTF-7 等,不一一赘述.

    相关文章

      网友评论

          本文标题:字符和编码简单入门

          本文链接:https://www.haomeiwen.com/subject/xogcoktx.html