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中 ...
随机推荐
- 走进AngularJs(四)自定义指令----(中)
上一篇简单介绍了自定义一个指令的几个简单参数,restrict.template.templateUrl.replace.transclude,这几个理解起来相对容易很多,因为它们只涉及到了表现,而没 ...
- MongoDB官网驱动仓库封装
定义IMongoRepositoryBase接口 public interface IMongoRepositoryBase { /// <summary> ...
- 利用定时器实时显示<input type="range"/>的值
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Oracle动态执行语句
一.为什么要使用动态执行语句? 由于在PL/SQL 块或者存储过程中只支持DML语句及控制流语句,并不支持DDL语句,所以Oracle动态执行语句便应允而生了.关于DDL与DML的区别,请参见:D ...
- rabbitmq消息队列——"工作队列"
二."工作队列" 在第一节中我们发送接收消息直接从队列中进行.这节中我们会创建一个工作队列来分发处理多个工作者中的耗时性任务. 工作队列主要是为了避免进行一些必须同步等待的资源密集 ...
- jquery.validate 基础
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ngOptions
ngOptions select as select as label for value in array <select ng-model="myColor" ng-op ...
- AngularJS中Directive指令系列 - scope属性的使用
文章是转的,我做下补充.原文地址:https://segmentfault.com/a/1190000002773689 每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部 ...
- 纯CSS实现JS效果研究
利用CSS3:checked选择器和~配合实现tab切换 效果: 代码: <style> body,div,input,label{ margin:0; padding:0; } #tab ...
- Zookeeper-Zookeeper的配置
前面两篇文章介绍了Zookeeper是什么和可以干什么,那么接下来我们就实际的接触一下Zookeeper这个东西,看看具体如何使用,有个大体的感受,后面再描述某些地方的时候也能在大脑中有具体的印象.本 ...