C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母

简介:
汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案。

1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z

2.Microsoft Visual Studio International Feature Pack 1.0  连"广"、“区”都不能转,很让人失望。

 

这些都是2010年以前的方案,至少还有大侠在为汉字转拼音不断努力着,目前发现最完美的就是NPINYIN,在googlecode可以看到它的开源项目,http://code.google.com/p/npinyin/

不能识别的字很少,而且还在不断维护更新,日趋完美,推荐大家使用。

下载地址

dll:http://files.cnblogs.com/files/guohu/NPinyin-0.2.4588.20158-bin.zip

源码:http://files.cnblogs.com/files/guohu/NPinyin-0.2.x-source_code.zip

 

v0.2.x的变化

  • 1、增加对不同编码格式文本的支持,同时增加编码转换方法Pinyin.ConvertEncoding
  • 2、重构单字符拼音的获取,未找到拼音时返回字符本身.

汪思言 2012年7月23日晚

将中文转换成拼音全文和首字母的.net 组件。示例:

using System;
using System.Collections.Generic; using System.Text; using NPinyin; namespace NPinyinTest {   class Program   {     static void Main(string[] args)     {       string[] maxims = new string[]{         "事常与人违,事总在人为",         "骏马是跑出来的,强兵是打出来的",         "驾驭命运的舵是奋斗。不抱有一丝幻想,不放弃一点机会,不停止一日努力。 ",         "如果惧怕前面跌宕的山岩,生命就永远只能是死水一潭",         "懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡"       };       string[] medicines = new string[] {         "聚维酮碘溶液",         "开塞露",         "炉甘石洗剂",         "苯扎氯铵贴",         "鱼石脂软膏",         "莫匹罗星软膏",         "红霉素软膏",         "氢化可的松软膏",         "曲安奈德软膏",         "丁苯羟酸乳膏",         "双氯芬酸二乙胺乳膏",         "冻疮膏",         "克霉唑软膏",         "特比奈芬软膏",         "酞丁安软膏",         "咪康唑软膏、栓剂",         "甲硝唑栓",         "复方莪术油栓"       };       Console.WriteLine("UTF8句子拼音:");       foreach (string s in maxims)       {         Console.WriteLine("汉字:{0}\n拼音:{1}\n", s, Pinyin.GetPinyin(s));       }       Encoding gb2312 = Encoding.GetEncoding("GB2312");       Console.WriteLine("GB2312拼音简码:");       foreach (string m in medicines)       {         string s = Pinyin.ConvertEncoding(m, Encoding.UTF8, gb2312);         Console.WriteLine("药品:{0}\n简码:{1}\n", s, Pinyin.GetInitials(s, gb2312));       }       Console.ReadKey();     }   } }

运行结果

UTF8句子拼音: 汉字:事常与人违,事总在人为 拼音:shi chang yu ren wei , shi zong zai ren wei

汉字:骏马是跑出来的,强兵是打出来的 拼音:jun ma shi pao chu lai de , qiang bing shi da chu lai de

汉字:驾驭命运的舵是奋斗。不抱有一丝幻想,不放弃一点机会,不停止一日努力。 拼音:jia yu ming yun de duo shi fen dou 。 bu bao you yi si huan xiang , bu fa ng qi yi dian ji hui , bu ting zhi yi ri nu li 。

汉字:如果惧怕前面跌宕的山岩,生命就永远只能是死水一潭 拼音:ru guo ju pa qian mian die dang de shan yan , sheng ming jiu yong yuan zh i neng shi si shui yi tan

汉字:懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡 拼音:nuo ruo de ren zhi hui guo zu bu qian , mang zhuang de ren zhi neng yin w ei shao shen , zhi you zhen zheng yong gan de ren cai neng suo xiang pi mi

GB2312拼音简码: 药品:聚维酮碘溶液 简码:JWTDRY

药品:开塞露 简码:KSL

药品:炉甘石洗剂 简码:LGSXJ

药品:苯扎氯铵贴 简码:BZLAT

药品:鱼石脂软膏 简码:YSZRG

药品:莫匹罗星软膏 简码:MPLXRG

药品:红霉素软膏 简码:HMSRG

 

药品:氢化可的松软膏 简码:QHKDSRG

药品:曲安奈德软膏 简码:QANDRG

药品:丁苯羟酸乳膏 简码:DBQSRG

药品:双氯芬酸二乙胺乳膏 简码:SLFSEYARG

药品:冻疮膏 简码:DCG

药品:克霉唑软膏 简码:KMZRG

药品:特比奈芬软膏 简码:TBNFRG

药品:酞丁安软膏 简码:TDARG

药品:咪康唑软膏、栓剂 简码:MKZRG、SJ

药品:甲硝唑栓 简码:JXZS

药品:复方莪术油栓 简码:FFESYS

分类:  ASP.NET, SQL

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6247531.html ,如需转载请自行联系原作者
相关文章
C# 获取汉字拼音首字母
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨C#获取汉字拼音首字母的方法: 代码类东西,直接上代码: /// /// 在指定的字符串列表CnStr中检...
3205 0
|
C# 数据格式 JSON
C#序列化的时候将实体进行驼峰命名(第一个首字母小写)
引用的程序集: NewtonSoft 第一种:使用对象的字段属性设置JsonProperty来实现(不推荐,因为需要手动的修改每个字段的属性) public class UserInfo { [JsonProperty("id")] pub...
2356 0
|
C#
C# 汉字转拼音 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
代码参考该文http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html VS2015版本 1.使用Nuget 安装 "SimplifiedChinesePinYinConversion" 2.
1674 0
|
C#
C#取得汉字的拼音的首字母
static public string GetChineseSpell( string strText ){    int len = strText.Length;    string myStr = "";    for( int i=0;i 1 )    {        int area...
1079 0
|
21天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
21天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
21天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。