zoukankan      html  css  js  c++  java
  • C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母

    src:
    http://share.weiyun.com/1bb2ce724d7337cecb9d397e25711595
     
     
    汉字转拼音貌似一直是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}
    拼音:{1}
    ", 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}
    简码:{1}
    ", 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

  • 相关阅读:
    [奇葩问题] Error Domain=NSURLErrorDomain Code=1003
    [linux] vim在源代码中自动添加作者信息(转载)
    [shell] 循环判断输入值
    [redis] linux下主从篇(2)
    [shell] sed学习
    [linux] 查看网卡UUID
    [笔记] centos6.6编译安装httpd2.4.10
    [笔记] postgresql 流复制(streaming replication)
    ORA28000: the account is locked 查哪个具体ip地址造成
    网易客户端授权密码,errormsg='authentication failed (method LOGIN)' exitcode=EX_NOPERM
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5601114.html
Copyright © 2011-2022 走看看