编码方式
各种语言需要交流,经过翻译是必要的,那又如何来翻译呢?在计算机中提供了多种翻译方式,常见的有 ASCII、ISO-88591、GB23112、GBK、UTF-8、UTF-8、UTF-16等。它们都可以被看作字典,它们规定了转换的规则,按照这个规则就可以让计算机正确地表示我们的字符。
在选择编码格式来存储汉字时,一般要考虑是存储空间还是编码的效率重要。
- ASCII 码
ASCII 码总共有128个,用1个字节的低七位表示,最高位固定为 0,共占用一个字节。0~31 是控制字符如换行、回车、删除等,32~126 是打印字符,可以通过键盘输入并且能够显示出来。具体如下:
0~31 及 127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:TAB(制表符)、CR(回车)、DEL(删除)、BS(退格)等,常用的ASCII值为 8、9、10 和13 分别转换为退格、制表、换行和回车字符。
48~57 为 0 到 9 十个阿拉伯数字。
65~90 为 26 个大写英文字母,97~122 号为 26 个小写英文字母,其余为一些标点符号、运算符号等。
32~47,58~64,123~126 代表常用标点符号(:‘等);
我们会发现这些中很多都可以在键盘上可以找得到。
- .ISO-8859-1
128个字符显然是不够用的,于是ISO组织在ASCII 码基础上又制定了一系列标准来拓展 ASCII 编码,它们是ISO-8859-1 至 ISO-8859-15,其中 ISO-8859-1 涵盖了大多数西欧语言字符,所以应用的最广泛。ISO-8859-1 仍然是单字节编码,它总共能表示 256 个字符。
- gb2312
GB2312 的全称是 《信息技术 中文编码字符集》,它是双字节编码,总的编码范围是 A1~F7,其中A1 ~ A9 是符号区,总共包含682个字符; B0~F7 是汉字区,包含6763个汉字。
- GBK
全称是《汉字内码扩展规范》,它的出现是为了拓展 GB2312 ,并加入更多的汉字。它的编码是和GB2312 兼容的,也就是说用GB2312 编码的汉字可以用GBK 来解码,并且不会有乱码。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。
- UTF-16
说到UTF 必须提到 unicode ,ISO 试图创建一个全新的超语言字典,世界上所有的语言都可以通过这个字典来相互翻译。UTF-16 具体定义了Unicode 在计算中的存取方法。UTF-16 用两个字节来表示 Unicode 的转化格式,采用定长的表示方法,即不论什么字符都可以用两个字节表示。
- UTF-8
UTF-16 存在存储空间浪费。UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以由1~6 个字节组成。它对英文采用8位编码,中文使用24位编码,包含全世界所有国家需要用到的字符,它是国际编码,通用型很强。如果是一个字节,最高位为0,则表示这是 1 个 ASCII 字符,可见,所有ASCII 编码已经是UTF-8了。
UTF-8采用变长的编码方式,使用 1~6 个字节来表示一个符号:
- 对于单字节的符号,字节的第一位设为 0,后面 7 位为这个符号的 unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
- 对于 n 字节的符号(n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为0,后面字节的前两位一律设为 10。剩下的没有提及的二进制位,全部为这个符号的 unicode 码。
相关阅读
Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限
用 Delphi 开发的程序,安装工具最好的选择是开源的 Inno setup。 这个工具就是在里面写一堆 script 代码。它按照代码打包程序文件
显示索引图像和灰度图像>> [X,map]=imread('trees.tif');>> gmap=rgb2gray(map);>> figure,imshow(X,map);>> figure,imshow(X,gm
必须会读会写会说的单词検索(けんさく) 一覧(いちらん) 照会(しょうかい) 更新(こうしん) 新規(しんき) 削除(さくじょ) 修
OrientDB 学习笔记简明教程 #创建类 create class Person extends V create class Company extends V create class WorkAt exten