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中 ...
随机推荐
- C# WPF获取任务栏时间区域的Rectangle
[StructLayout(LayoutKind.Sequential)] public struct WindowRect { public int left; public int top; pu ...
- [.net 面向对象程序设计进阶] (4) 正则表达式 (三) 表达式助手
[.net 面向对象程序设计进阶] (2) 正则表达式(三) 表达式助手 上面两节对正则表达式的使用及.NET下使用正则表达式作了详细说明,本节主要搜集整理了常用的正则表达式提供参考. 此外为了使用方 ...
- java算法(二)
四.最小公倍数最大公约数问题: 分析:两个数的最小公倍数等于两个数相乘再除以他们的最大公约数,因此只要求出最大公约数就可以啦. package JingDian; public class yuebe ...
- Spring-Context之八:一些依赖注入的小技巧
Spring框架在依赖注入方面是非常灵活和强大的,多了解点一些注入的方式.方法,绝对能优化配置. idref idref属性可以传入一个bean的名称,虽然它是指向一个bean的引用,但是得到的是该b ...
- jQuery的extend方法的深层拷贝
一些东西长时间不用就忘了,比如这个jQuery的extend方法的深层拷贝,今天看单页应用的书的时候,看到entend第一个参数是true,都蒙了.也是,自己的大部分对jQuery的学习知识来自锋利的 ...
- PowerDesigner实用操作
1. 让PhysicalDiagram里的表显示字段名Tools→Display Preferences→在General Settings里选择Table→点击Advanced→选择Form下的Co ...
- Objective-C 随机数
有个项目要给客户发送随机验证码, 试了下这样可以 srand(time()); code = [NSString stringWithFormat: - )) + ];
- Leetcode 4 Median of Two Sorted Arrays 二分查找(二分答案+二分下标)
貌似是去年阿里巴巴c++的笔试题,没有什么创新直接照搬的... 题意就是找出两个排序数组的中间数,其实就是找出两个排序数组的第k个数. 二分答案,先二分出一个数,再用二分算出这个数在两个排序数组排序第 ...
- 如何配置Hyper-V的虚拟机通过主机网络上网 (NAT)
前言 最近开始在Windows 8 上面直接使用Hyper-V的技术来建立虚拟环境进行开发和测试,这样免去了再安装额外软件的需要.在实际使用的时候,尤其是配置网络共享的时候,遇到些问题,与其他一些虚拟 ...
- 使用office制作图章公章
制作公章的软件非常多,随便到网上一搜就有成千成百的软件或小工具,常用的有PS.Coreldraw.Ai.Word等,拥有一款office可以使用word来制作,方法挺简单,功能挺强大.寥寥数笔难以形容 ...