• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  汉字转拼音,网上的资料不少,一般都是按区位码与拼音关系查表得到。但是很少有人注意一下信息:

GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个。
 
分区表示 
 GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
 101-09区为特殊符号。
 216-55区为一级汉字,按拼音排序356-87区为二级汉字按部首/笔画排序410-15区及88-94区则未有编码。

  也就是说二级汉字与拼音不存在联系。这样网上大部分汉字转拼音类只能正确获取部分汉字的拼音(一级汉字).只有小数的3000多一点汉字.  而二级汉字根本查询不到,比如“蜻蜓”,比如"闰",虽然网上补上了二级汉字中"深圳"的圳,但与二级汉字的的总数相比,显得还是远远不够的。

    因此据于上面的问题就对现有网上存在的方法进行了扩展,使其能获取GB2312-80编码规则中的所有中文汉字.

  功能描述:


  1.汉字字符串转换为全拼表示        

  2.汉字字符串转换为全拼音的首字母表示.比如:"生活的七色板"返回的是"SHDQSB"

        相比现有网上绝大部分方法做的性能改进:  

  性能及改进:
    1.使用StringBuilder连接要解析的字符串中的各个拼音.这个方法大量的字符串性能改善非常明显。     
  2.对一级字符串(日常使用最普遍的汉字)采用分块查找.加快查找速度。
  3.支持一二级所有汉字(也就是支持所有GB2312字符集中汉字)。

   缺点:不能区分多音字,只完全支持GB2312-80汉字库,如果是多音字,只能得到最后一个列表中的拼音。

   补充:如果想支持多音字,建议用词库资源库的方式进行查找编程如果有时间,我也会用这个词库资源库方式再作一个汉字转拼音的类库,以尽量支持汉字多音字及标号拼音。敬请关注

  下面是当前改进的汉字转拼音类:

View Code
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace MyPinYin
  7 {
  8     /// <summary>
  9     /// 汉字拼音转换类
 10     /// </summary>
 11     public class PinYinConverter
 12     {
 13         #region 数组信息
 14 
 15         private static int[] pyValue = new int[] 
 16 
 17         {
 18             -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, 
 19 
 20             -20230, -20051, -20036, -20032, -20026, -20002, -19990, -19986, -19982,
 21 
 22             -19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746, 
 23 
 24             -19741, -19739, -19728, -19725, -19715, -19540, -19531, -19525, -19515, 
 25 
 26             -19500, -19484, -19479, -19467, -19289, -19288, -19281, -19275, -19270, 
 27 
 28             -19263, -19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224, 
 29 
 30             -19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996, -18977,
 31 
 32             -18961, -18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735, 
 33 
 34             -18731, -18722, -18710, -18697, -18696, -18526, -18518, -18501, -18490,
 35 
 36             -18478, -18463, -18448, -18447, -18446, -18239, -18237, -18231, -18220,
 37 
 38             -18211, -18201, -18184, -18183, -18181, -18012, -17997, -17988, -17970, 
 39 
 40             -17964, -17961, -17950, -17947, -17931, -17928, -17922, -17759, -17752, 
 41 
 42             -17733, -17730, -17721, -17703, -17701, -17697, -17692, -17683, -17676,
 43 
 44             -17496, -17487, -17482, -17468, -17454, -17433, -17427, -17417, -17202, 
 45 
 46             -17185, -16983, -16970, -16942, -16915, -16733, -16708, -16706, -16689, 
 47 
 48             -16664, -16657, -16647, -16474, -16470, -16465, -16459, -16452, -16448, 
 49 
 50             -16433, -16429, -16427, -16423, -16419, -16412, -16407, -16403, -16401, 
 51 
 52             -16393, -16220, -16216, -16212, -16205, -16202, -16187, -16180, -16171,
 53 
 54             -16169, -16158, -16155, -15959, -15958, -15944, -15933, -15920, -15915, 
 55 
 56             -15903, -15889, -15878, -15707, -15701, -15681, -15667, -15661, -15659, 
 57 
 58             -15652, -15640, -15631, -15625, -15454, -15448, -15436, -15435, -15419,
 59 
 60             -15416, -15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362, 
 61 
 62             -15183, -15180, -15165, -15158, -15153, -15150, -15149, -15144, -15143, 
 63 
 64             -15141, -15140, -15139, -15128, -15121, -15119, -15117, -15110, -15109, 
 65 
 66             -14941, -14937, -14933, -14930, -14929, -14928, -14926, -14922, -14921,
 67 
 68             -14914, -14908, -14902, -14894, -14889, -14882, -14873, -14871, -14857, 
 69 
 70             -14678, -14674, -14670, -14668, -14663, -14654, -14645, -14630, -14594,
 71 
 72             -14429, -14407, -14399, -14384, -14379, -14368, -14355, -14353, -14345,
 73 
 74             -14170, -14159, -14151, -14149, -14145, -14140, -14137, -14135, -14125, 
 75 
 76             -14123, -14122, -14112, -14109, -14099, -14097, -14094, -14092, -14090, 
 77 
 78             -14087, -14083, -13917, -13914, -13910, -13907, -13906, -13905, -13896, 
 79 
 80             -13894, -13878, -13870, -13859, -13847, -13831, -13658, -13611, -13601,
 81 
 82             -13406, -13404, -13400, -13398, -13395, -13391, -13387, -13383, -13367, 
 83 
 84             -13359, -13356, -13343, -13340, -13329, -13326, -13318, -13147, -13138, 
 85 
 86             -13120, -13107, -13096, -13095, -13091, -13076, -13068, -13063, -13060, 
 87 
 88             -12888, -12875, -12871, -12860, -12858, -12852, -12849, -12838, -12831,
 89 
 90             -12829, -12812, -12802, -12607, -12597, -12594, -12585, -12556, -12359,
 91 
 92             -12346, -12320, -12300, -12120, -12099, -12089, -12074, -12067, -12058,
 93 
 94             -12039, -11867, -11861, -11847, -11831, -11798, -11781, -11604, -11589, 
 95 
 96             -11536, -11358, -11340, -11339, -11324, -11303, -11097, -11077, -11067,
 97 
 98             -11055, -11052, -11045, -11041, -11038, -11024, -11020, -11019, -11018,
 99 
100             -11014, -10838, -10832, -10815, -10800, -10790, -10780, -10764, -10587,
101 
102             -10544, -10533, -10519, -10331, -10329, -10328, -10322, -10315, -10309, 
103 
104             -10307, -10296, -10281, -10274, -10270, -10262, -10260, -10256, -10254 
105 
106         };
107 
108         private static string[] pyName = new string[]
109 
110          { 
111              "A", "Ai", "An", "Ang", "Ao", "Ba", "Bai", "Ban", "Bang", "Bao", "Bei", 
112 
113              "Ben", "Beng", "Bi", "Bian", "Biao", "Bie", "Bin", "Bing", "Bo", "Bu",
114 
115              "Ba", "Cai", "Can", "Cang", "Cao", "Ce", "Ceng", "Cha", "Chai", "Chan",
116 
117              "Chang", "Chao", "Che", "Chen", "Cheng", "Chi", "Chong", "Chou", "Chu",
118 
119              "Chuai", "Chuan", "Chuang", "Chui", "Chun", "Chuo", "Ci", "Cong", "Cou",
120 
121              "Cu", "Cuan", "Cui", "Cun", "Cuo", "Da", "Dai", "Dan", "Dang", "Dao", "De", 
122 
123              "Deng", "Di", "Dian", "Diao", "Die", "Ding", "Diu", "Dong", "Dou", "Du", 
124 
125              "Duan", "Dui", "Dun", "Duo", "E", "En", "Er", "Fa", "Fan", "Fang", "Fei", 
126 
127              "Fen", "Feng", "Fo", "Fou", "Fu", "Ga", "Gai", "Gan", "Gang", "Gao", "Ge", 
128 
129              "Gei", "Gen", "Geng", "Gong", "Gou", "Gu", "Gua", "Guai", "Guan", "Guang", 
130 
131              "Gui", "Gun", "Guo", "Ha", "Hai", "Han", "Hang", "Hao", "He", "Hei", "Hen", 
132 
133              "Heng", "Hong", "Hou", "Hu", "Hua", "Huai", "Huan", "Huang", "Hui", "Hun",
134 
135              "Huo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jie", "Jin", "Jing", "Jiong", 
136 
137              "Jiu", "Ju", "Juan", "Jue", "Jun", "Ka", "Kai", "Kan", "Kang", "Kao", "Ke",
138 
139              "Ken", "Keng", "Kong", "Kou", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kui", 
140 
141              "Kun", "Kuo", "La", "Lai", "Lan", "Lang", "Lao", "Le", "Lei", "Leng", "Li",
142 
143              "Lia", "Lian", "Liang", "Liao", "Lie", "Lin", "Ling", "Liu", "Long", "Lou", 
144 
145              "Lu"< 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#匿名方法发布时间:2022-07-13
下一篇:
C#Math四舍五入,向上取整发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap