1. 程式人生 > >C#漢字轉拼音(npinyin)將中文轉換成拼音全文或首字母

C#漢字轉拼音(npinyin)將中文轉換成拼音全文或首字母

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));
      }