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的转换会是怎样处理呢?有机会以后分解(当然方法不止一种)。

转载于:https://www.cnblogs.com/zhaojihui/p/6624767.html

GB2312简体中文转换为拼音的一种方法相关推荐

  1. 利用python实现汉字转拼音的2种方法

    python实现汉字转拼音的2种方法 在浏览博客时,偶然看到了用python将汉字转为拼音的第三方包,但是在实现的过程中发现一些参数已经更新,现在将两种方法记录一下. xpinyin 在一些博客中看到 ...

  2. 字符串html在线互转,将string 的字符串转换为HTML的两种方法

    将string 的字符串转换为HTML的两种方法 采用jquery对象转换 采用原生javascript中DOMParser的parseFromString方法实现 1.采用jquery实现 var ...

  3. 用Excel如何将文本转换为数字的七种方法

    用Excel如何将文本转换为数字的七种方法 当下,很多工作都会用到Excel,下面本文分步介绍了如何将包含文本的Excel单元格转换为包含数字的单元格. 概述: 当导入在另一程序(如 dBASE 或  ...

  4. php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】

    本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...

  5. Java/Android中汉字转拼音的两种方法,优劣比较

    一.前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录).于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二.汉字转拼音的方法 使用第 ...

  6. PDF怎么转换成Word?将PDF转换为Word的三种方法!

    在我们需要将PDF文件转换为Word文件时,有几种方法可以选择.通常,我们在文件传输过程中使用的文件格式是PDF,但如果我们需要对文件进行编辑,就需要将其转换为可编辑的Word格式.下面是几种转换方法 ...

  7. JS中将一个值转换为字符串的3种方法

    1.value.toString() 2."" + value 3.String(value) 第一种方法存在的问题是,它不能把null和undefined转换为字符串.还有第二种 ...

  8. Android中汉字转拼音的两种方法,优劣比较

    一.前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录).于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二.汉字转拼音的方法 使用第 ...

  9. 如何将PDF转换为PPT?三种方法让你操作无忧!

    在我们日常工作中,使用PPT演示工作内容是常见的需求.熟练制作各种类型的PPT是每个专业人士必备的技能.但有时会遇到PDF格式的文件需要转换为PPT才能使用.这两种文件格式在日常工作中广泛使用,每个人 ...

最新文章

  1. 二叉树非递归先序遍历
  2. 「可解释ML/3D深度学习等」Github六月最受欢迎的机器学习库来啦
  3. Erdaicms旅游网站系统微信和手机端分销系统正式上线发布啦
  4. Web前端求职时都会被问到的Redis面试题分享
  5. Win7有多条隧道适配器(isatap、teredo、6to4)的原因及关闭方法
  6. PyTorch系列入门到精通——图像预处理transforms
  7. 大端模式、小端模式、网络字节顺序与主机字节顺序
  8. MariaDB忘记root密码
  9. 手把手教你搭建FastDFS集群(下)
  10. Ubuntu入门——基础终端命令
  11. Intellij IDEA破解激活
  12. 读博士或者拿到博士学位以后经历和感受是怎样的?
  13. 【爱心】JAVA表白代码——属于程序员的浪漫
  14. 内测成员爱范儿CTO何世友讲述微信小程序的台前幕后
  15. 几何公差(GDT)的特征项目及符号
  16. 学了一年php感觉什么都不会,php自学要多久_一个学了1年php后选择放弃
  17. Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis
  18. StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践
  19. Subsurface Scatting 的简单模拟
  20. 驾考一点通维语版_维语版驾考宝典

热门文章

  1. c语言游戏服务器源码,2018大师级C++游戏服务器编程实战(视频+源码)
  2. 剧情反转! 创始人去世事件再爆新料, 1.8亿美元难道去了天堂?
  3. Android 基础 View 系列之 仿IPhone 开关控件
  4. 获取同程(艺龙)酒店数据
  5. 计算机本地连接xp,xp看不到本地连接?xp系统本地连接不见了怎么办
  6. Docker镜像与仓库(四)
  7. 2018年五一小长假全国旅游大数据报告出炉,这些景点太火爆!
  8. 虚拟服务器mac地址会变化,同一台主机的IP地址变了 mac地址会变吗
  9. 百度语音识别api QT window下 调试应用
  10. 用Qt的MinGW编译VTK9.0.1