一

{"type":"编程笔记"}


  • Home

  • Archives
  • Search

gb2312简体中文编码表

Posted on 2015-11-30   |   In web

概述

GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。

GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。但对于人名、古汉语等方面出现的罕用字和繁体字,GB2312不能处理,因此后来GBK及GB18030汉字字符集相继出现以解决这些问题。

分区表示

GB2312字符集构成一个94行、94列的二维表,行号称为区号,列号称为位号,每一个汉字或符号在码表中的位置用它所在的区号和位号来表示。这种表示方式也称为区位码。

  • 01-09区为特殊符号。
  • 16-55区为一级汉字,按拼音排序。
  • 56-87区为二级汉字,按部首/笔画排序。
  • 10-15区及88-94区则未有编码。

编码原则

  1. 小于127的字符意义与原来ASCII码表字符意义相同,127之后的奇异符号们(即EASCII)取消。
  2. 两个大于127的字符连在一起时,就表示一个汉字,这样我们就可以组合出大约7000多个简体汉字了,原因后面有详细说明。
  3. 汉字用两个字节表示,每个字节用七位码,且每个字节高位为0,前面的一个字节(高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFE。
  4. 国家标准将汉字和图形符号排列在一个94行94列的二维代码表中,每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码。
  5. 在这些编码里,还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的全角字符,而原来在127号以下的那些就叫半角字符了。

举例来说,啊字是GB2312之中的第一个汉字,它的区位码就是1601,如保字在二维代码表中处于17区第3位,区位码即为1703。

编码详细说明

国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为(以下数字后的D表示为10进制数字,H则表示此数字为16进制,B表示为字节byte):

  1. 先将十进制区码和位码转换为十六进制的区码和位码。
  2. 这样就得了一个与国标码有一个相对位置差的代码。
  3. 再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码,相当于如果不转换的话,在两个字节上分别加上32即可。

如:保字的国标码为3123H,它是经过下面的转换得到的:1703D => 1103H => +2020H => 3123H。

国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如保字,国标码为31H和23H,而西文字符1和#的ASCII也为31H和23H,现假如内存中有两个字节为31H和23H,这到底是一个汉字,还是两个西文字符1和#呢?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,汉字的机内码采用变形国标码,其变换方法为:

Read more »

simple http proxy server written in nodejs

Posted on 2015-11-23   |   In nodejs

用nodejs的http模块实现的http代理服务器,不支持https代理。

http-proxy.js

Read more »

node-http-proxy usage example

Posted on 2015-11-22   |   In nodejs

node-http-proxy是用node.js实现的可编程的代理服务器类库,支持websockets,可作代理集群和负载均衡管理,可以根据自定义的逻辑,代理不同的请求到不同的服务器上去,如下例子。

http servers

Read more »

liquid模板使用简介

Posted on 2015-11-22   |   In ruby

liqid中有二种标签类型:

1. 一种是输出,格式为`{{ }}`。 2. 另一种主要是控制输出的标签`{% %}`。

普通输出文本或者变量

Read more »

rouge - syntax highlighter

Posted on 2015-11-22   |   In ruby

rouge是用ruby实现,兼容python pygments的语法高亮工具。

安装

Read more »
1…262728…99
yuweijun

yuweijun

492 posts
12 categories
RSS
GitHub Twitter
© 2021 yuweijun
Powered by Hexo
Theme - NexT.Mist.KISS