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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM