汉字编码

GB2312

双字节编码。

  • 编码范围
    • 首字节0xA1 - 0xFE
    • 尾字节0xA1 - 0xFE
  • 汉字范围
    • 0xB0A1 - 0xF7FE。

GBK(GB13000)

双字节编码。%BR% 由前电子部科技质量司和国家技术监督局标准化司于1995年12月颁布的指导性规范。(GBK的 K是“扩展”的汉语拼音第一个字母)

  • 编码范围
    • 首字节0x81 - 0xFE
    • 尾字节0x40 - 0xFE,剔除0x7F
  • 编码区分三部分
    • 汉字区
      • GBK/2:0xBOA1 - 0xF7FE, 收录 GB2312 汉字 6763 个,按原序排列
      • GBK/3:0x8140 - 0xAOFE,收录 CJK 汉字 6080 个
      • GBK/4:0xAA40 - 0xFEAO,收录 CJK 汉字和增补的汉字 8160 个
    • 图形符号区
      • GBK/1:0xA1A1 - 0xA9FE,除 GB2312 的符号外,还增补了其它符号
      • GBK/5:0xA840 - 0xA9AO,扩充非汉字区
    • 自定义区
      • 即 GBK 区域中的空白区

GB18030

双/四字节编码。%BR% GB18030-2000(又称GBK2K)在GBK的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K从根本上解决了字位不够,字形不足的问题。编码是变长的,其二字节部分与GBK兼容;四字节部分是扩充的字形、字位。 它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。

  • 编码范围
    • 双字节部分于GBK兼容
    • 四字节
      • 首字节0x81 - 0xFE
      • 二字节0x30 - 0x39
      • 三字节0x81 - 0xFE
      • 四字节0x30 - 0x39

UTF-8

不定长编码。UTF-8是Unicode的实现方式之一。%BR% UTF是一种变长的编码,它的字节数是不固定的,使用第一个字节确定字节数。第一个字节首为0即一个字节,110即2字节,1110即3字节,字符后续字节都用10开始,这样不会混淆且单字节英文字符可仍用ASCII编码。

  • unicode转化为UTF-8的方法
    • Unicode码范围。汉字的Unicode编码范围是0800-FFFF,因此汉字在UTF8是3字节编码。
      • 0000-007F 0xxxxxxx
      • 0080-07FF 110xxxxx 10xxxxxx
      • 0800-FFFF 1110xxxx 10xxxxxx 10xxxxxx
  • Unicode和UTF-8之间的转换关系表
    • UCS-4编码 UTF-8字节流
      • U+00000000 – U+0000007F 0xxxxxxx
      • U+00000080 – U+000007FF 110xxxxx 10xxxxxx
      • U+00000800 – U+0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
      • U+00010000 – U+001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
      • U+00200000 – U+03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
      • U+04000000 – U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

BIG5

双字节编码。%BR% Big5是台湾的IIIT1984年发明的,CNS 11643-1992( Chinese National Standard)是扩展版本,主要大家用的还是BIG5。

  • 编码范围
    • 首字节0xA1 - 0xF9
    • 尾字节0x40 - 0x7E,0xA1 - 0xFE

编码相关

匹配正则表达式

  • utf-8
    • ”/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/”
  • gb2312
    • ”/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/”
  • gbk
    • ”/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/”
  • big5
    • ”/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/”

GBK系列全角字符

  • 全角数字
    • 首字节0xa3,尾字节(0xb0 - 0xb9) 是全角数字: 0 - 9
      • 0123456789
  • 全角英文字母
    • 0xa3[0xc1 - 0xda]: A - Z
      • ABCDEFGHIJKLMNOPQRSTUVWXYZ
    • 0xa3[0xe1 - 0xfa]: a - z
      • abcdefghijklmnopqrstuvwxyz

文件头几个字节判断文件编码

  • Unicode:0xFFEF
  • Unicode Bigendian:0xFEFF
  • Utf-8 +BOM:0xEFBBBF

Panzhibiao 2012/01/12 17:50

devdoc/chinesecharsets.txt · 最后更改: 2012/01/12 17:51 (外部编辑)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki