编码与解码:从计算机字符编码到地理信息编码

26 篇文章 2 订阅

       编码是将信息按照特定的规则从一种形式或格式转换为另一种形式的过程,它的逆过程被称为解码(译码),译码则是按照相同的规则将已经被编码的内容还原为最初的对象内容。编码与解码广泛用于文字、语言、计算机、通讯等方面,比如:中文翻译成英文,c程序翻译成二进制、模拟信号翻译成数字信号、多媒体编码、信息加密、邮政编码、地理编码等等。

       编码与解码需要遵循特定的编码规则(可以参考摩斯编码),编码规则是编码与解码的关键,如果用错了编码规则,那么就会出现乱码,这似乎在计算机中已经司空见惯。考量其原因,不同的编码规范或者标准都有一定的局限性,不同的人或者公司都有自己的一套编码规则,当一套编码规则应用于另外一套信息数据时,此时乱码就出现了。当然,如果信息本身是为了保密需要,那另说。

一、计算机字符编码

       人类语言有自然语言、数学语言、图像语言、逻辑语言、编程语言等等。相较于人类语言而言,由于电路和指令设计的原因,计算机语言是非常单薄的,因为它只能识别0、1这两个数字,单从这个方面看,计算机是一台非常笨的机器。但是计算机却有一个长处,它能够非常快速地处理大量重复的指令,因为这一特性,计算机科学家们根据0、1数字的不同排列组合,形成了不同的编码集(或者说字符集),从而将众多的人类语言逐一翻译计算机语言。令人遗憾的是,人类语言的庞杂性和当时计算机科学家们编制编码集时的局限性,总有一些字符是未被纳入编码集中的,这也就出现了新闻中某人的名字是偏僻字,计算机打不出来这种尴尬情况。

      现行英文编码集有ASCII编码,中文编码集有GB2312、BIG5、GBK、GB18030等,以及Unicode编码(万国码),还有Unicode升级版UTF-8、UTF-16、UTF-32。细分的话,不同国家的编码集更是数不胜数。

1、ASCII编码:

  ASCII是美国在19世纪60年代的时候为了建立英文字符和二进制的关系时制定的编码规范,使用8个比特位表示一个字符,它能表示128个字符,包含了英文字符、阿拉伯数字、西文字符以及32个控制字符,而剩余的比特位则保留使用。ASCII字符集能够表示英文和数字等绝大部分西文词语,并等同于国际标准ISO 646。

      ASCII包含内容
      控制字符:回车键、退格、换行键等。
      可显示字符:英文大小写字符、阿拉伯数字和西文符号。
      技术特征
     7位(bits)表示一个字符,共128字符,字符值从0到127,其中32到126是可打印字符。

2、ASCII扩展字符集

  当美国的ASCII编码传到欧洲时,很多国家用的不是英文,他们的字母里有许多是ASCII里没有的(全世界有几百种语言),为了可以在计算机保存他们的文字,他们决定采用 127号之后的空位来表示这些新的字母、符号,并且还加入了横线、竖线、交叉等形状的编码,一直把序号编到了最后一个状态255。从128 到255这一页的字符集被称“ASCII扩展字符集”。ASCII扩展字符集从ASCII字符集扩充出来的,扩充后的符号增加了表格符号、计算符号、希腊字母和特殊的拉丁符号。

3、中国汉字编码

       等到国人使用计算机时,这255个字符集已被西方人完全被填满,根本没有可以利用的字节状态来表示汉字,而且常用汉字有六七千个,这个时候,国人就发明了一套汉字编码系统,叫做GB2312”。随着发展,又发现了一些局限,所以就有了GBK,再继续往后增加了一些字符(如少数名族字体),GBK扩成了 GB18030。

     (1)GB2312编码

      GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。GB2312是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆和新加坡获广泛使用。

     包含内容
     GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
技术特征
   1)分区表示:
      GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
各区包含的字符如下:01-09区为特殊符号;16-55区为一级汉字,按拼音排序;56-87区为二级汉字,按部首/笔画排序;10-15区及88-94区则未有编码。
  2)双字节表示
    两个字节中前面的字节为第一字节,后面的字节为第二字节。习惯上称第一字节为“高字节” ,而称第二字节为“低字节”。
“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。

   (2) BIG5大五码

    BIG5称大五码或五大码,1984年由台湾财团法人信息工业策进会和五家软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众 (FIC)创立,故称大五码。Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBM PS55、王安码等,彼此不能兼容;另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码亦未有收录繁体中文字。

    编码方法
     Big5码使用了双字节储存方法,以两个字节来编码一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。高位字节的编码范围0xA1-0xF9,低位字节的编码范围0x40-0x7E及0xA1-0xFE。各编码范围对应的字符类型如下:0xA140-0xA3BF为标点符号、希腊字母及特殊符号,另外于0xA259-0xA261,存放了双音节度量衡单位用字:兙兛兞兝兡兣嗧瓩糎;0xA440-0xC67E为常用汉字,先按笔划再按部首排序;0xC940-0xF9D5为次常用汉字,亦是先按笔划再按部首排序。

  (3) GB18030编码 

   GB 18030的全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。 GB 18030字符集标准解决汉字、日文假名、朝鲜语和中国少数民族文字组成的大字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位,收录了27484个汉字,覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。

      编码方法
      GB 18030标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分使用0×00至0×7F码(对应于ASCII码的相应码)。双字节部分,首字节码从0×81至0×FE,尾字节码位分别是0×40至0×7E和0×80至0×FE。四字节部分采用GB/T 11383未采用的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第一、三个字节编码码位均为0×81至0×FE,第二、四个字节编码码位均为0×30至0×39。
     包含内容
     双字节部分收录内容主要包括GB13000.1全部CJK汉字20902个、有关标点符号、表意文字描述符13个、增补的汉字和部首/构件80个、双字节编码的欧元符号等。 四字节部分收录了上述双字节字符之外的,包括CJK统一汉字扩充A在内的GB 13000.1中的全部字符。

在早期的计算机图形操作系统中,如windows,为了支持不同的字符编码,使用了字符编码页(code page)来标记不同国家的字符编码,用于不同国家的语言,比如:437为美国IBM编码转换代码,708、720为阿拉伯数字编码转换代码,737希腊字母转换代码,860为葡萄牙语转换代码,874为泰语转换代码,932为日语转换代码, 936为简体中文转换代码,950为繁体中文转换代码等等,可以参考附件一:字符编码页或支持语言。在windows操作系统中,如果想查看当前使用的字符编码,可以在DOS界面上输入:chcp,即可看到当前DOS操作系统使用的字符编码集。以下DOS操作系统使用的是936中文简体编码

如果想要改变当前操作系统活动也的字符编码,如美国,也可以在DOS界面上输入:chcp  437

如果想改变整个操作系统的字符编码,可以在系统页中设置语言:

4、Unicode编码

       因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾(BIG5编码)这样只相隔了150海里也使用不同编码。这个时候,Unicode 学术学会(Unicode Consortium)决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号 的编码!他们打算叫它“Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “Unicode”,以支持现今世界各种不同语言的书面文本的交换、处理及显示。Unicode编码于1990年开始研发,1994年正式公布.

     特征
    Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求  。
    编码方法
    Unicode 标准始终使用十六进制数字,而且在书写时在前面加上前缀“U+”,例如字母“A”的编码为 004116 和字符“?”的编码为 20AC16。所以“A”的编码书写为“U+0041”。

ASCII编码和Unicode编码的区别:

  1)ASCII编码是1个字节,而Unicode编码通常是2个字节,举例如下。

  字母 用ASCII编码是十进制的65,二进制的01000001

  字符 用ASCII编码是十进制的48,二进制的00110000,注意字符 '0' 和整数 是不同的;

  汉字 中 已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101

  如果把ASCII编码的 用Unicode编码,只需要在前面补0就可以,因此, 的Unicode编码是00000000 01000001

5、UTF-8编码及扩展:

  随着互联网的普及,人们发现Unicode这种长码的定长字符不适合于网上传输,因为会大量地浪费网络资源,因此又在Unicode的基础上研究了UTF-8这种可变长的字符集用于网络上传输,以节约网络资源。后续 UTF-16、 UTF-32也相继被研发出来。

      UTF-8是Unicode的其中一个使用方式。 UTF是 Unicode Tranformation Format,即把Unicode转做某种格式的意思。
      UTF-8便于不同的计算机之间使用网络传输不同语言和编码的文字,使得双字节的Unicode能够在现存的处理单字节的系统上正确传输。
      UTF-8使用可变长度字节来储存 Unicode字符,例如ASCII字母继续使用1字节储存,重音文字、希腊字母或西里尔字母等使用2字节来储存,而常用的汉字就要使用3字节。辅助平面字符则使用4字节。
     UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)     

      虽然Unicode或者UTF-8被称为万国码,并得到广泛应用,但是不同国家发展的字符集已经在各自的领地里发芽成长,万国码依然有玩不转的时候。比如:在我们国家,几乎所有操作系统都会使用中文编码支持的操作系统,假定操作系统编码被内置为GB2312编码,GB2312编码与UTF-8编码是两套不同的编码字符集,那么在一些软件中,如果安装软件是Unicode,而你的操作系统是GB2312编码,还是会出现乱码的情况。

二、地理编码

      狭义的地理编码是指将地址或地名描述转换为地球表面上相应位置的功能,比如北京这个地名,它被地理编码后的经纬度坐标为(东经116°20′、北纬39°56′),其逆向地理编码是将坐标(东经116°20′、北纬39°56′)转化为北京这个地名。广义的地理编码应包含二进制、文本、矢量、图像等多种形式表示的地物实体到位置坐标的转换。

       地理编码不仅有字符集编码的技术特征,更有位置编码的特征。 地理编码与逆向编码需要一定的位置坐标系统才能完成,地理编码也经历了像字符集编码发展的过程。常见的坐标系统(不考虑投影坐标系)有很多,每个国家都有自己单独的一套坐标系统,如现在各国的坐标系统:美国的wgs84、中国的cgcs2000、欧洲的GCSE1987等等,长久一段时间内,这些坐标系统都是封闭的,国与国之间的坐标系转换常常是一件非常痛苦的事情。在一些国际组织的努力下,如:EPSG、OGC,现行的坐标系和编码系统已经逐渐规范。

1、坐标系统名词

SRS:spatial reference system 空间参考系统

CRS:coordinate reference system 坐标参考系统

GCS(Geographic Coordinate Systems):地理坐标系统

GEOCCS:地心坐标系统

GEOGCS:地理坐标系统

PROJCS:投影坐标系统

2、坐标系统索引表示

       现行的空间坐标系统在计算机软件中都会有一套标准的坐标编码系统,用来索引不同的空间坐标系,常用的有EPSG(European Petroleum Survey Group)编码和OGC(Open Geospatial Consortium)编码(为了保持整体的规范性,这两套编码数值已经统一),分别用于不同的信息系统或者软件中,EPSG维护着空间参照对象的数据集,OGC标准中空间参照系统的SRID(Spatial Reference System Identifier)与EPSG的空间参照系统ID相一致。也有使用WKID表示这个索引编号的,但是数值都是一样的。

如:WGS 84全球坐标系,SRS=EPSG:4326,SRID 4326,WKID=4326

       国家2000经纬度坐标系:EPSG:4490

       墨卡托投影坐标系:EPSG:3857

wkid:4326

GEOGCS["GCS_WGS_1984",       坐标系名称                      

                    DATUM["D_WGS_1984", 基准面

                          SPHEROID["WGS_1984",6378137,298.257223563]], 椭球体(长半轴、扁率)

                              PRIMEM["Greenwich",0], (中央子午线)

                                 UNIT["Degree",0.017453292519943295]] (单位)

3、空间数据编码语言

空间数据编码语言有 WKT、GML、GeoJSON等,用于空间信息数据的存储、表达与交换等。

WKT(Well-known text)是开放地理空间联盟OGC(Open GIS Consortium )制定的空间数据ASCII文本表示语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。

WKB(well-known binary) 是空间数据的binary二进制表示语言,解决了WKT表达方式冗余的问题,便于传输和在数据库中存储相同的信息。

GML地理标记语言(Geographic Markup Language)是由OGC定义的XML(标准通用标记语言的子集)格式,用来表达地理信息要素。它提供一个表达地理信息要素的语言模型,同时可以用来在Internet上进行数据交换,由xml扩展而来。由开放地理信息系统协会(OGC)负责制定它的标准。

GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。一个完整的GeoJSON数据结构总是一个(JSON术语里的)对象。在GeoJSON里,对象由名/值对--也称作成员的集合组成。对每个成员来说,名字就是是字符串。成员的值要么是字符串、数字、对象、数组或者空值表示。

严格意义上说GeoJSON并不是国际通用的空间信息交换格式,只不过Javascript在各浏览器上的广泛支持,使得GeoJSON变成实际上的空间交换格式。类似于网络协议的七层模型与实际5层模型的关系。

表现形式:

  WKT

 POINT(-111.870478 33.685992) 

WKB

是WKT二级制表现方式

GML

<gml:pos>-111.870478 33.685992</gml:pos>

GeoJSON

{

"x":-111.870478,

"y": 33.685992,

"spatialReference": {

"wkid": 4326

}

}

       在计算机中,编码方式是多种多样的,涉及到各种各样的数据格式,比如:文本,图像,视频,压缩数据、网络交换格式等等。即便是相同的领域,不同厂商或者组织给出来的编码标准也是千差万别的,编码方式更是多如牛毛,比如编程语言:c,c++,python,java,go等等,尽管都是用文本编制。对于不同的数据,需要有特有的软件或者支持的软件才能较好的译码,这也是计算机应用人员不得不面对的一个难题。直到现在,Unicode依然在不断发展中,更不用说系统编程、软件应用、数据交换需要面对那些乱码问题了。

附件一:字符编码页或支持语言

代码页       国家(地区)或语言 
437          美国 
708          阿拉伯文(ASMO 708)
720          阿拉伯文(DOS)
850          多语言(拉丁文 I) 
852          中欧(DOS) - 斯拉夫语(拉丁文 II) 
855          西里尔文(俄语) 
857          土耳其语 
860          葡萄牙语 
861          冰岛语 
862          希伯来文(DOS)
863          加拿大 - 法语 
865          日耳曼语 
866          俄语 - 西里尔文(DOS) 
869          现代希腊语
874          泰文(Windows)
932          日文(Shift-JIS)
936          中国 - 简体中文(GB2312)
949          韩文
950          繁体中文(Big5)
1200         Unicode        
1201         Unicode (Big-Endian)
1250         中欧(Windows)
1251         西里尔文(Windows)
1252         西欧(Windows)
1253         希腊文(Windows)
1254         土耳其文(Windows)
1255         希伯来文(Windows)
1256         阿拉伯文(Windows)
1257         波罗的海文(Windows)
1258         越南文(Windows)
20866        西里尔文(KOI8-R)
21866        西里尔文(KOI8-U)
28592        中欧(ISO)
28593        拉丁文 3 (ISO)
28594        波罗的海文(ISO)
28595        西里尔文(ISO)
28596        阿拉伯文(ISO)
28597        希腊文(ISO)
28598        希伯来文(ISO-Visual)
38598        希伯来文(ISO-Logical)
50000        用户定义的
50001        自动选择
50220        日文(JIS)
50221        日文(JIS-允许一个字节的片假名)
50222        日文(JIS-允许一个字节的片假名 - SO/SI)
50225        韩文(ISO)
50932        日文(自动选择)
50949        韩文(自动选择)
51932        日文(EUC)
51949        韩文(EUC)
52936        简体中文(HZ)
65000        Unicode (UTF-7)
65001        Unicode (UTF-8)

附件二:Unicode发展历程

1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。

Unicode6.3版已发布(2013年11月)。在Unicode联盟网站上可以查看完整的6.3的核心规范。

Unicode定义了大到足以代表人类所有可读字符的字符集。

Java语言就用到了Unicode编码,从而实现了该语言的国际通用性。

Unicode截至目前为止,共发布了以下多个版本:

Unicode 1.0:1991年10月

Unicode 1.0.1:1992年6月

Unicode 1.1:1993年6月

Unicode 2.0:1997年7月

Unicode 2.1:1998年5月

Unicode 2.1.2:1998年5月

Unicode 3.0:1999年9月;涵盖了来自ISO 10646-1的十六比特通用字符集(UCS)基本多文种平面(Basic Multilingual Plane)

Unicode 3.1:2001年3月;新增从ISO 10646-2定义的辅助平面(Supplementary Planes)

Unicode 3.2:2002年3月

Unicode 4.0:2003年4月

Unicode 4.0.1:2004年3月

Unicode 4.1:2005年3月

Unicode 5.0:2006年7月

Unicode 5.1:2008年4月

Unicode 5.2:2009年10月

Unicode 6.0:2010年10月

Unicode 6.1:2012年1月31日

Unicode 6.2:2012年9月

Unicode 6.3:2013年11月19日

Unicode 7.0:2014年6月15日

Unicode 8.0:2015年6月17日

Unicode 9.0:2016年6月22日

Unicode 10.0:2017年6月18日

Unicode 11.0:2018年6月5日

Unicode 12.1.0:2019年5月7日

Unicode 13.0.0:2020年3月10日

附件二

Unicode 到目前(Unicode 13.0.0)为止所定义的十七个平面中,基本多文种平面(Basic Multilingual Plane,BMP,也就是第0平面)最为重要,其编码分布如下:

000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)

0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)

0100-017F:拉丁文扩展-A (Latin Extended-A)

0180-024F:拉丁文扩展-B (Latin Extended-B)

0250-02AF:国际音标扩展 (IPA Extensions)

02B0-02FF:空白修饰字母 (Spacing Modifiers)

0300-036F:结合用读音符号 (Combining Diacritics Marks)

0370-03FF:希腊文及科普特文 (Greek and Coptic)

0400-04FF:西里尔字母(Cyrillic)

0500-052F:西里尔字母补充 (Cyrillic Supplement)

0530-058F:亚美尼亚语 (Armenian)

0590-05FF:希伯来文 (Hebrew)

0600-06FF:阿拉伯文 (Arabic)

0700-074F:叙利亚文 (Syriac)

0750-077F:阿拉伯文补充 (Arabic Supplement)

0780-07BF:它拿字母 (Thaana)

07C0-07FF:西非书面语言 (N'Ko)

0800-085F:阿维斯塔语及巴列维语(Avestan and Pahlavi)

0860-087F:曼达文字 (Mandaic)

0880-08AF:撒马利亚语 (Samaritan)

0900-097F:天城文 (Devanagari)

0980-09FF:孟加拉语 (Bengali)

0A00-0A7F:锡克教文 (Gurmukhi)

0A80-0AFF:古吉拉特文 (Gujarati)

0B00-0B7F:奥里亚文 (Oriya)

0B80-0BFF:泰米尔文 (Tamil)

0C00-0C7F:泰卢固文 (Telugu)

0C80-0CFF:卡纳达文 (Kannada)

0D00-0D7F:德拉维族语 (Malayalam)

0D80-0DFF:僧伽罗语 (Sinhala)

0E00-0E7F:泰文 (Thai)

0E80-0EFF:老挝文 (Lao)

0F00-0FFF:藏文 (Tibetan)

1000-109F:缅甸语 (Myanmar)

10A0-10FF:格鲁吉亚语(Georgian)

1100-11FF:朝鲜文 (Hangul Jamo)

1200-137F:埃塞俄比亚语 (Ethiopic)

1380-139F:埃塞俄比亚语补充 (Ethiopic Supplement)

13A0-13FF:切罗基语 (Cherokee)

1400-167F:统一加拿大土著语音节 (Unified Canadian Aboriginal Syllabics)

1680-169F:欧甘字母 (Ogham)

16A0-16FF:如尼文 (Runic)

1700-171F:塔加拉语 (Tagalog)

1720-173F:哈努诺文 (Hanunóo)

1740-175F:布希德文 (Buhid)

1760-177F:塔格班瓦文 (Tagbanwa)

1780-17FF:高棉语 (Khmer)

1800-18AF:蒙古文 (Mongolian)

18B0-18FF:加拿大原住民音节文字扩展 (Unified Canadian Aboriginal Syllabics Extended)

1900-194F:林布文 (Limbu)

1950-197F:德宏泰语 (Tai Le)

1980-19DF:新傣仂语 (New Tai Lue)

19E0-19FF:高棉语记号 (Kmer Symbols)

1A00-1A1F:布吉文 (Buginese)

1A20-1AAF:老傣文 (Tai Tham)

1AB0-1AFF:组合变音标记扩展 (Combining Diacritical Marks Extended)

1B00-1B7F:巴厘语 (Balinese)

1B80-1BB0:巽他语 (Sundanese)

1BC0-1BFF:巴塔克文 (Batak)

1C00-1C4F:雷布查语(Lepcha)

1C50-1C7F:桑塔利文(Ol Chiki)

1C80-1CDF:曼尼普尔语(Meithei/Manipuri)

1D00-1D7F:音标扩展 (Phonetic Extensions)

1D80-1DBF:音标扩展补充 (Phonetic Extensions Supplement)

1DC0-1DFF:结合附加符号补充 (Combining Diacritics Marks Supplement)

1E00-1EFF:拉丁文扩充附加 (Latin Extended Additional)

1F00-1FFF:希腊语扩充 (Greek Extended)

2000-206F:常用标点(General Punctuation)

2070-209F:上标及下标 (Superscripts and Subscripts)

20A0-20CF:货币符号 (Currency Symbols)

20D0-20FF:组合用记号 (Combining Diacritics Marks for Symbols)

2100-214F:字母式符号 (Letterlike Symbols)

2150-218F:数字形式 (Number Form)

2190-21FF:箭头 (Arrows)

2200-22FF:数学运算符 (Mathematical Operator)

2300-23FF:杂项工业符号 (Miscellaneous Technical)

2400-243F:控制图片 (Control Pictures)

2440-245F:光学识别符 (Optical Character Recognition)

2460-24FF:封闭式字母数字 (Enclosed Alphanumerics)

2500-257F:制表符 (Box Drawing)

2580-259F:方块元素 (Block Element)

25A0-25FF:几何图形 (Geometric Shapes)

2600-26FF:杂项符号 (Miscellaneous Symbols)

2700-27BF:印刷符号 (Dingbats)

27C0-27EF:杂项数学符号-A (Miscellaneous Mathematical Symbols-A)

27F0-27FF:追加箭头-A (Supplemental Arrows-A)

2800-28FF:盲文点字模型 (Braille Patterns)

2900-297F:追加箭头-B (Supplemental Arrows-B)

2980-29FF:杂项数学符号-B (Miscellaneous Mathematical Symbols-B)

2A00-2AFF:追加数学运算符 (Supplemental Mathematical Operator)

2B00-2BFF:杂项符号和箭头 (Miscellaneous Symbols and Arrows)

2C00-2C5F:格拉哥里字母(Glagolitic)

2C60-2C7F:拉丁文扩展-C (Latin Extended-C)

2C80-2CFF:科普特语 (Coptic)

2D00-2D2F:格鲁吉亚语补充 (Georgian Supplement)

2D30-2D7F:提非纳文 (Tifinagh)

2D80-2DDF:埃塞俄比亚语扩展 (Ethiopic Extended)

2E00-2E7F:追加标点 (Supplemental Punctuation)

2E80-2EFF:CJK 部首补充 (CJK Radicals Supplement)

2F00-2FDF:康熙字典部首 (Kangxi Radicals)

2FF0-2FFF:表意文字描述符 (Ideographic Description Characters)

3000-303F:CJK 符号和标点 (CJK Symbols and Punctuation)

3040-309F:日文平假名 (Hiragana)

30A0-30FF:日文片假名 (Katakana)

3100-312F:注音字母 (Bopomofo)

3130-318F:朝鲜文兼容字母 (Hangul Compatibility Jamo)

3190-319F:象形字注释标志 (Kanbun)

31A0-31BF:注音字母扩展 (Bopomofo Extended)

31C0-31EF:CJK 笔画 (CJK Strokes)

31F0-31FF:日文片假名语音扩展 (Katakana Phonetic Extensions)

3200-32FF:封闭式 CJK 文字和月份 (Enclosed CJK Letters and Months)

3300-33FF:CJK 兼容 (CJK Compatibility)

3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A)

4DC0-4DFF:易经六十四卦符号 (Yijing Hexagrams Symbols)

4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs)

A000-A48F:彝文音节 (Yi Syllables)

A490-A4CF:彝文字根 (Yi Radicals)

A4D0-A4FF:老傈僳文 (Lisu)

A500-A63F:瓦伊语 (Vai)

A660-A6FF:统一加拿大土著语音节补充 (Unified Canadian Aboriginal Syllabics Supplement)

A700-A71F:声调修饰字母 (Modifier Tone Letters)

A720-A7FF:拉丁文扩展-D (Latin Extended-D)

A800-A82F:锡尔赫特文 (Syloti Nagri)

A840-A87F:八思巴字 (Phags-pa)

A880-A8DF:索拉什特拉文 (Saurashtra)

A8E0-A8FF:天城文扩展 (Devanagari Extended)

A900-A92F:克耶里字母 (Kayah Li)

A930-A95F:勒姜字母 (Rejang)

A960-A97F:谚文扩展-A (Hangul Jamo Extended-A)

A980-A9DF:爪哇语 (Javanese)

A9E0-A9FF:缅甸文扩展-B (Myanmar Extended-B)

AA00-AA5F:占语字母 (Cham)

AA60-AA7F:缅甸文扩展-A (Myanmar Extended-A)

AA80-AADF:越南傣文 (Tai Viet)

AAE0-AAFF:曼尼普尔文扩展 (Meetei Mayek Extensions)

AB00-AB2F:埃塞俄比亚语字母扩展-A (Ethiopic Extended-A)

AB30-AB6F:拉丁文扩展-E (Latin Extended-E)

AB70-ABBF:切罗基语补充 (Cherokee Supplement)

ABC0-ABFF:曼尼普尔文 (Meetei Mayek)

AC00-D7AF:朝鲜文音节 (Hangul Syllables)

D800-DB7F:高位替代字符 (High Surrogates)

DB80-DBFF:高位专用替代字符 (High Private Use Surrogates)

DC00-DFFF:低位替代字符 (Low Surrogates)

E000-F8FF:私用区 (Private Use Zone)

F900-FAFF:CJK 兼容象形文字 (CJK Compatibility Ideographs)

FB00-FB4F:字母表达形式 (Alphabetic Presentation Form)

FB50-FDFF:阿拉伯表达形式A (Arabic Presentation Form-A)

FE00-FE0F:变量选择符 (Variation Selector)

FE10-FE1F:竖排形式 (Vertical Forms)

FE20-FE2F:组合用半符号 (Combining Half Marks)

FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms)

FE50-FE6F:小型变体形式 (Small Form Variants)

FE70-FEFF:阿拉伯表达形式B (Arabic Presentation Form-B)

FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form)

FFF0-FFFF:特殊 (Specials)

 

附件三 wkt组织

Geometry typeText descriptionComment
ST_Point'point empty'empty point
ST_Point'point z empty'empty point with z-coordinate
ST_Point'point m empty'empty point with measure
ST_Point'point zm empty'empty point with z-coordinate and measure
ST_Point'point ( 10.05 10.28 )'point
ST_Point'point z( 10.05 10.28 2.51 )'point with z-coordinate
ST_Point'point m( 10.05 10.28 4.72 )'point with measure
ST_Point'point zm(10.05 10.28 2.51 4.72 )'point with z-coordinate and measure
ST_LineString'linestring empty'empty linestring
ST_LineString'linestring z empty'empty linestring with z-coordinates
ST_LineString'linestring m empty'empty linestring with measures
ST_LineString'linestring zm empty'empty linestring with z-coordinates and measures
ST_LineString'linestring (10.05 10.28 , 20.95 20.89 )'linestring
ST_LineString'linestring z(10.05 10.28 3.09, 20.95 31.98 4.72, 21.98 29.80 3.51 )'linestring with z-coordinates
ST_LineString'linestring m(10.05 10.28 5.84, 20.95 31.98 9.01, 21.98 29.80 12.84 )'linestring with measures
ST_LineString'linestring zm(10.05 10.28 3.09 5.84, 20.95 31.98 4.72 9.01, 21.98 29.80 3.51 12.84)'linestring with z-coordinates and measures
ST_Polygon'polygon empty'empty polygon
ST_Polygon'polygon z empty'empty polygon with z-coordinates
ST_Polygon'polygon m empty'empty polygon with measures
ST_Polygon'polygon zm empty'empty polygon with z-coordinates and measures
ST_Polygon'polygon ((10 10, 10 20, 20 20, 20 15, 10 10))'polygon
ST_Polygon'polygon z((10 10 3, 10 20 3, 20 20 3, 20 15 4, 10 10 3))'polygon with z-coordinates
ST_Polygon'polygon m((10 10 8, 10 20 9, 20 20 9, 20 15 9, 10 10 8 ))'polygon with measures
ST_Polygon'polygon zm((10 10 3 8, 10 20 3 9, 20 20 3 9, 20 15 4 9, 10 10 3 8 ))'polygon with z-coordinates and measures
ST_MultiPoint'multipoint empty'empty multipoint
ST_MultiPoint'multipoint z empty'empty multipoint with z-coordinates
ST_MultiPoint'multipoint m empty'empty multipoint with measures
ST_MultiPoint'multipoint zm empty'empty multipoint with z-coordinates and measures
ST_MultiPoint'multipoint (10 10, 20 20)'multipoint with two points
ST_MultiPoint'multipoint z(10 10 2, 20 20 3)'multipoint with z-coordinates
ST_MultiPoint'multipoint m(10 10 4, 20 20 5)'multipoint with measures
ST_MultiPoint'multipoint zm(10 10 2 4, 20 20 3 5)'multipoint with z-coordinates and measures
ST_MultiLineString'multilinestring empty'empty multilinestring
ST_MultiLineString'multilinestring z empty'empty multilinestring with z-coordinates
ST_MultiLineString'multilinestring m empty'empty multilinestring with measures
ST_MultiLineString'multilinestring zm empty'empty multilinestring with z-coordinates and measures
ST_MultiLineString'multilinestring ((10.05 10.28 , 20.95 20.89 ),( 20.95 20.89, 31.92 21.45))'multilinestring
ST_MultiLineString'multilinestring z((10.05 10.28 3.4, 20.95 20.89 4.5),( 20.95 20.89 4.5, 31.92 21.45 3.6))'multilinestring with z-coordinates
ST_MultiLineString'multilinestring m((10.05 10.28 8.4, 20.95 20.89 9.5), (20.95 20.89 9.5, 31.92 21.45 8.6))'multilinestring with measures
ST_MultiLineString'multilinestring zm((10.05 10.28 3.4 8.4, 20.95 20.89 4.5 9.5), (20.95 20.89 4.5 9.5, 31.92 21.45 3.6 8.6))'multilinestring with z-coordinates and measures
ST_MultiPolygon'multipolygon empty'empty multipolygon
ST_MultiPolygon'multipolygon z empty'empty multipolygon with z-coordinates
ST_MultiPolygon'multipolygon m empty'empty multipolygon with measures
ST_MultiPolygon'multipolygon zm empty'empty
ST_MultiPolygon'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 40)))'multipolygon
ST_MultiPolygon'multipolygon z(((10 10 7, 10 20 8, 20 20 7, 20 15 5, 10 10 7), (50 40 6, 50 50 6, 60 50 5, 60 40 6, 50 40 6)))'multipolygon with z-coordinates
ST_MultiPolygon'multipolygon m(((10 10 2, 10 20 3, 20 20 4, 20 15 5, 10 10 2), (50 40 7, 50 50 3, 60 50 4, 60 40 5, 50 40 7)))'multipolygon with measures
ST_MultiPolygon'multipolygon zm(((10 10 7 2, 10 20 8 3, 20 20 7 4, 20 15 5 5, 10 10 7 2), (50 40 6 7, 50 50 6 3, 60 50 5 4, 60 40 6 5, 50 40 6 7)))'multipolygon with z-coordinates and measures
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值