C#漢字轉拼音(npinyin)將中文轉換成拼音全文或首字母
阿新 • • 發佈:2019-02-20
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));
}