汉字转拼音貌似一直是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

C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母的更多相关文章

  1. excel中文转成拼音字母(包括首字母大写)

    参考文献: 1.首字母大写:http://www.excelpx.com/thread-168029-1-1.html(里面下载一个excel,里面有宏) 中文转拼音: 2.http://blog.s ...

  2. C# 汉字转拼音 将中文转换成拼音

    //建立一个公共类,用于转换汉字 public class ChnToPh { //定义拼音区编码数组 private static int[] getValue = new int[] { -,-, ...

  3. Asp.net Core中文转换成拼音

    一.概述 之前使用.net framework,可以使用Microsoft Visual Studio International Feature Pack 1.0 进行转换,现在使用asp.net ...

  4. C#中文转换成拼音英文

    #region 0.1 中文转到英文 + static string GetPinYing(string characters) /// <summary> /// 中文转到英文 /// ...

  5. MySQL中文转换成拼音的函数

    CREATE DEFINER=`root`@`localhost` FUNCTION `fristPinyin`(`P_NAME` VARCHAR(255) CHARSET utf8) RETURNS ...

  6. SQL 汉字转换成拼音首字母 首字母查

    -- ============================================= -- 功能:汉字转换成拼音首字母 首字母查 -- ========================== ...

  7. java中汉字自动转换成拼音

    java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...

  8. python把汉字转换成拼音实现程序

    python把汉字转换成拼音实现程序 文章一个简洁干的汉字转拼音 程序,复制下载就可以直接使用,有需要的同学可以参考一下下. #coding:utf-8 #基于python2.6 table = 'a ...

  9. C++ 将汉字转换成拼音全拼

    #include <string> using std::string; //======================================================= ...

随机推荐

  1. GJM : 中断被Socket.Accept阻塞的线程

    原帖地址:http://blog.csdn.net/kingfox/article/details/7233350 原文作者:狐帝 刚刚学习C#,在编写一个网络通讯的程序的时候,遇到了点麻烦.监听代码 ...

  2. .NET 各种框架

    基于.NET平台常用的框架整理 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度 ...

  3. BFC总结

    图1:问题图    图2:代码    图3:解决图 问题图与解决图的区别:黄色箭头那行代码的无和有 BFC 定义 BFC(Block formatting context)直译为"块级格式化 ...

  4. [python]初试页面抓取——抓取沪深股市交易龙虎榜数据

    [python]抓取沪深股市交易龙虎榜数据 python 3.5.0下运行 没做自动建立files文件夹,需要手动在py文件目录下建立files文件夹后运行 #coding=utf-8 import ...

  5. js(jquery)解决input元素的blur事件和其他非表单元素的click事件冲突的方法

    HTML结构:很简单,就一个input,一个div,能说明问题就OK了: <input type="text" value="默认值"><br ...

  6. javascript 函数初探 (四)--- 回调函数

    回调函数 既然函数与任何被赋值给变量的数据是相同的,那么她当然可以像其他数据那样被定义.删除.拷贝,以及当成参数传递给其它函数. 我们定义一个函数,这个函数有两个函数类型的参数,然后他会分别执行这两个 ...

  7. 自定义加载loading view动画组件的使用。

    在github上找的一个有点酷炫的loading动画https://github.com/Fichardu/CircleProgress 我写写使用步骤 自定义view(CircleProgress  ...

  8. UIScrollView出现位移问题

    啦啦啦啦啦~~~ UINavigationController和UIScrollView一起使用时会导致UIScrollView位置偏移 情况:UINavigationController的视图上的第 ...

  9. “#if 0/#if 1 ... #endif”的作用

    1. "#if 0/#if 1 ... #endif"的作用,我们知道,C标准不提供C++里的"//"这样的单行风格注释而只提供"/* */" ...

  10. Mac使用极简教程

    最近领导让我写一篇关于Mac的使用教程,因为使用人群未知,所以尽量写的通俗易懂,可谓是关于Mac电脑使用的精简教程吧,在此发表出来以供参考. Mac因为安全性而闻名,我们拥有了一部Mac,那么我们来了 ...