汉字转拼音问题

汉字转拼音

基本思路就是从 unicode.org 获取到字符码以及对应的拼音Unihan.zip,然后再通过脚本解析成需要的格式,并输出为 dictionary。
(其中,Unihan.zip 内容说明见:reports/tr38)

在使用时,将输入字符串解析成单个的汉字,去查字典。

Unicode 字符平面

当前的 Unicode 字符分为17组编排,每组称为平面(Plane),而每平面拥有65536(即216)个代码点。然而当前只用了少数平面

unicode 编码采用了 2bytes 进行表达。表达方式为:[0 - 0x10][0 ~ 0xFFFF], 第一部分为平面id,第二部分就是字符值。

其中,常见的有:

  • 0号平面,基本多文种平面,Basic Multilingual Plane,简称 BMP
  • 1号平面,多文种补充平面,Supplementary Multilingual Plane,简称 SMP
  • 15号平面,保留作为私人使用区(A区),Private Use Area-A,简称 PUA-A
  • 16号平面,保留作为私人使用区(B区),Private Use Area-B,简称 PUA-B

GB2312、GBK、GB18030

借着这个机会,又重新学习了下 GB2312、GBK、GB18030 这几种汉字编码的历史。

  1. GB2312 或 (GB2312-80)
    是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5 月 1 日实施.

它采用两个字节表示一个字符,同时兼容了 ASCII。为了兼容 ASCII,它规定,一个小于127的字符的意义与原来相同,但当两个大于127的字符连在一起时,就表示一个汉字。就是说,对于每个字节只使用大于 127 的值用于编码。

GB2312 共收录 6763 个汉字,另外还收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等在内的 682 个字符。

GB2312 基本满足了汉字的计算机处理需要,它覆盖了中国 99.75% 的使用频率。但是却对于人名、古汉语等方面出现的罕用字无能为力,这导致了后来 GBK 及 GB 18030 汉字字符集的出现。

  1. GBK
    GBK 即汉字内码扩展规范,K 为汉语拼音 Kuo Zhan(扩展)中“扩”字的声母。英文全称 Chinese Internal Code Specification。

GBK 共收入 21886 个汉字和图形符号,GBK 向下与 GB 2312 完全兼容。

GBK 采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。

  1. GB18030
    全称是:国家标准 GB18030-2005,是目前中国最新的字符集,是 GB18030-2000 的修订版。GB18030 完全兼容 GBK,共收录汉字70244个。

与 UTF-8 相同,GB18030 采用多字节编码,采用 1、2、4 字节变长编码。

  • 单字节,其值从 0 到 0x7F,与 ASCII 编码兼容。
  • 双字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x40 到 0xFE(不含0x7F),以与 GBK 标准兼容。
  • 四字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x30 到 0x39,第三个字节从0x81 到 0xFE,第四个字节从 0x30 到 0x39。

Reference

  • go 语言的 汉字转拼音 实现:go-pinyin
    - 依赖库:pinyin-data

你可能感兴趣的:(汉字转拼音问题)