• GB2312简体中文转换为拼音的一种方法


      GBK是GB18030的子集(GB18030暂不追溯)。

      GBK编码标准共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。

      GB2312简体中文编码表:http://tools.jb51.net/table/gb2312

      GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。整个字符集分成94个区,每区有94个位。

    • GB2312,又称为GB0,由中国国家标准总局发布,1981年5月1日实施
    • GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个
    • GB2312是一种区位码。分为94个区(01-94),每区94个字符(01-94)
    • 01-09区为特殊符号
    • 10-15区没有编码
    • 16-55区为一级汉字,按拼音排序,共3755个
    • 56-87区为二级汉字,按部首/笔画排序,共3008个
    • 88-94区没有编码
    • GB2312只是编码表,在计算机中通常都是用"EUC-CN"表示法,即在每个区位加上0xA0来表示。区和位分别占用一个字节。

      GB2312是GBK的子集。GB2312是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。GB2312编码包括符号、数字、字母、日文、制表符等,当然最主要的部分还是中文,它采用16位编码方式,简体中文的编码范围从B0A1一直到F7FE。如果我们把该编码的每8位用十进制来表示就是[176 | 161]到[247 | 254],这样对于每个中文字符,我们都可以通过两个值来表示它,如“啊”就是[176 | 161],“我”则是[206 | 210]。

      通过上面的方法,我们就可以通过一个二维坐标对每一个中文字进行定位,从而建立一个二维表来实现中文和拼音的对应关系。当然我们会忽略一些特殊情况,比如汉字的多音字问题。由于一个拼音可能对应多个汉字,而拼音的组合本来就不多,因此我们首先建立一个拼音音节表,代码如下,里面列出了所有可能的组合情况,该表是一维数组。

      在上面提到的二维表中,我们会保存音节表的索引值,来对应一个音节组合,如bao,而不是直接把音节组合保存在二维数组中,这样可以有效减少内存消耗。因此,二位数组中的所有值都应该是索引值,如数组元素[176][161]对应的应该是a的索引值0。

      以C#语言简例:

      首先输入汉字“我”,首先程序初始化一个GB2312编码对象

      System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("GB2312");

    然后通过该对象获得“我”的编码数组

      byte[] local = encoding.GetBytes(“我”);

    local中的值应该是local[0]=206; local[1]=210。转换为十六进制,在CED2坐标位置可以找到“我”字。再查音节组合表,得索引值(可以根据具体需要修正索引)对应的是"wo",这样就完成了简体中文到拼音的转换。

      由此可以想到多音字、或者GBK的转换会是怎样处理呢?有机会以后分解(当然方法不止一种)。

  • 相关阅读:
    PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
    LAMP与LNMP架构的区别及其具体的选择说明
    LNMP 与 LAMP 架构的区别及配置解决方案
    LAMP和LNMP,你更愿意选择谁,为什么?
    Storm流计算从入门到精通之技术篇(高并发策略、批处理事务、Trident精解、运维监控、企业场景)
    Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)
    基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析
    深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)
    深入浅出OpenStack云计算平台管理(nova-compute/network)
    玩转大数据:深入浅出大数据挖掘技术(Apriori算法、Tanagra工具、决策树)
  • 原文地址:https://www.cnblogs.com/zhaojihui/p/6624767.html
Copyright © 2020-2023  润新知