說明

  • 老婆大人工作上需要大量轉換漢字為拼音,按照他們的工作SOP需要一個一個字去查詢。
  • 身為工程師怎可以讓老婆浪費時間去做這種事情呢?當然是希望全部複製貼上後就搞定啦!
  • 拜合適套件所賜,全部Coding過程不到15分鐘,老婆以崇拜的眼光在一旁看著。
  • 之後老婆也很佛心的將程式提供給同事們,大幅降低大家的工作量。
  • 老婆都這麼佛心了,我這邊就將程式碼完整公布啦,希望可以幫助到有需要的人。

Package

  • NPinyin.Core.3.0.0

Code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.VisualBasic;
using System.Globalization;
using MetroFramework.Forms;
 


namespace PinyinTest
{
    public partial class Form1 : MetroForm
    {
        TextInfo myTI = new CultureInfo("en-US", false).TextInfo;

        public Form1()
        {
            InitializeComponent();
        }


        private void metroButton1_Click(object sender, EventArgs e)
        {
            //直接利用TextBox元件的Lines屬性即可得到以列為單位的字串陣列(string[])
            string[] strChinese = (!String.IsNullOrEmpty(txtChinese.Text.Trim())) ? txtChinese.Lines : null;

            string strPinyin = "";

            foreach (string str in strChinese) {
                //將繁體中文字轉換成簡體中文
                //簡體中文 (GB2312) 系統的 LocaleID (LCID) 為 2052
                string strCN = Strings.StrConv(str, VbStrConv.SimplifiedChinese, 2052);

                //轉換成拼音
                string pinyin = NPinyin.Pinyin.GetPinyin(strCN);

                strPinyin += pinyin + "\r\n";
            }

            txtPinyin.Text = myTI.ToTitleCase(strPinyin);
        }
    }
}

執行畫面

執行畫面預覽