C# 汉字转拼音(支持GB2312字符集中所有汉字)

分区表示
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
)-09区为特殊符号。
)-55区为一级汉字,按拼音排序。
)-87区为二级汉字,按部首/笔画排序。
)-15区及88-94区则未有编码。
也就是说二级汉字与拼音不存在联系。这样网上大部分汉字转拼音类只能正确获取部分汉字的拼音(一级汉字).只有小数的3000多一点汉字. 而二级汉字根本查询不到,比如“蜻蜓”,比如"闰",虽然网上补上了二级汉字中"深圳"的圳,但与二级汉字的的总数相比,显得还是远远不够的。
因此据于上面的问题就对现有网上存在的方法进行了扩展,使其能获取GB2312-80编码规则中的所有中文汉字.
功能描述:
1.汉字字符串转换为全拼表示
2.汉字字符串转换为全拼音的首字母表示.比如:"生活的七色板"返回的是"SHDQSB"
相比现有网上绝大部分方法做的性能改进:
性能及改进:
1.使用StringBuilder连接要解析的字符串中的各个拼音.这个方法大量的字符串性能改善非常明显。
2.对一级字符串(日常使用最普遍的汉字)采用分块查找.加快查找速度。
3.支持一二级所有汉字(也就是支持所有GB2312字符集中汉字)。
缺点:不能区分多音字,只完全支持GB2312-80汉字库,如果是多音字,只能得到最后一个列表中的拼音。
补充:如果想支持多音字,建议用词库资源库的方式进行查找编程。如果有时间,我也会用这个词库资源库方式再作一个汉字转拼音的类库,以尽量支持汉字多音字及标号拼音。敬请关注。
下面是当前改进的汉字转拼音类:

, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
, -, -, -, -, -, -, -, -,
-, -, -, -, -, -, -, -, -,
-, -, -, -, -, -, -, -, -,
-, -, -, -, -, -, -, -, -
};
{
};
{
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , };
{
};
;
;
;
{
, );
}
{
);
; i < chs.Length; i++)
{
sb.Append(GetFirst(chs[i]));
}
}
{
] * + (Int16)arr[] - ;
&& chr < )
{
}
{
; aPos >= ; aPos--)
{
;
{
; i >= aboutPos; i--)
{
{
}
}
}
}
}
{
{
}
}
}
{
);
; j < chs.Length; j++)
{
sb.Append(Get(chs[j]));
}
}
}
}
C# 汉字转拼音(支持GB2312字符集中所有汉字)的更多相关文章
- CPinyin unicode汉字查找拼音(支持多音字)
下载代码 --------------------------------------------------------------------------------- 虽然很笨的办法,却非常有效 ...
- C#汉字转拼音(支持多音字)
之前由于项目需要,中间需要一个汉字转拼音和首拼的功能来做查询,感觉这种功能基本已经成熟化了,于是查找了相关的代码,首先引入眼帘的是下面两篇文章 1.C# 汉字转拼音(支持GB2312字符集中所有汉字) ...
- java 汉字转拼音
先决条件: pinyin4j.jar(Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制.) 下载地址:http://pan.baidu.com/share/l ...
- java汉字转拼音以及得到首字母通用方法
package oa.common.utils; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.piny ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
- java字符操作获取汉字的拼音以及其它经常使用工具
公司需求年年有,今年有点小特殊,哈哈. 忽然加了个需求,说要实现汉字转拼音查询. 在努力下写出来了,如今分享一下吧!.! /** * 汉字转拼音缩写 * * @param str * 要转换的汉字字符 ...
- PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转
ChineseUtil 下载地址:https://github.com/Yurunsoft/ChineseUtil 另外一个中文转拼音工具:https://github.com/overtrue/pi ...
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...
- PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法
方法一:依据ASCII码转换,GB2312库对多音字也无能为力. GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换.如:中国前总理朱镕基的"镕"字. GB2312中 ...
随机推荐
- [.net 面向对象编程基础] (13) 面向对象三大特性——多态
[.net 面向对象编程基础] (13) 面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...
- [专业名词·硬件] 1、等效串联电阻ESR概述及稳压电路中带有一定量ESR电容的好处
一.等效串联电阻ESR概述 ESR是Equivalent Series Resistance的缩写,即“等效串联电阻”.理想的电容自身不会有任何能量损失,但实际上,因为制造电容的材料有电阻,电 ...
- java中基本类型和包装类型实践经验
至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...
- Direct2D教程(外篇)环境配置
2014年世界杯首场淘汰赛马上开始了,闲着没事,整理以前的博客草稿打发时间,意外的发现这篇文章,本来是打算加入到Direct2D那个系列的,不知道为什么把它给遗漏了.环境配置,对于熟手来说,不是什么重 ...
- Windows Azure Virtual Machine (25) 使用SSH登录Azure Linux虚拟机
<Windows Azure Platform 系列文章目录> 本文介绍内容适合于Azure Global和Azure China 为什么使用SSH登录Azure Linux虚拟机? 我们 ...
- 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- Lucene系列-分析器
分析器介绍 搜索的基础是对文本信息进行分析,Lucene的分析工具在org.apache.lucene.analysis包中.分析器负责对文本进行分词.语言处理得到词条,建索引和搜索的时候都需要用到分 ...
- Properties
java.util 类 Properties 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但强烈反对使用这两个方法 ...
- 05- Shell脚本学习--函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. 函数定义 Shell 函数的定义格式 ...
- vs如何在C++中调用Lua
最近Cocos2dx的学习卡壳了,一般的照抄代码我不想写上来,但想示例也想得我头晕...为了放松大脑调整状态于是开始学习Lua.Lua的语法学习还是比较简单的,学过javascript或者vbscri ...