码迷,mamicode.com
首页 > 编程语言 > 详细

C#中使用微软语言包来获取中文汉字的拼音、拼音首字母、中文繁体

时间:2021-04-30 12:38:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:测试   public   library   cat   示例   else   繁体中文   reading   zh-cn   

首先需要获取ChnCharInfo.dll (汉子转拼音就可以了)和ChineseConverter.dll (简繁转化吧)

 

ChnCharInfo.dll官方下载操作如下:

先下载微软Microsoft Visual Studio International Pack 1.0 SR1语言包:

Microsoft Visual Studio International Pack 1.0 SR1

Microsoft Visual Studio International Feature Pack 2.0


下载后分别是“vsintlpack1.zip”、“Vsintlpack2.msi”、双击“Vsintlpack2.msi”安装完成之后解压“vsintlpack1.zip”,获得七个语言包。双击其中的“CHSPinYinConv.msi”完成安装后就可以在Visual Studio中引用了。

默认的语言包类库文件引用地址:“C:\Program Files (x86)\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library\ChnCharInfo.dll”

 

(把这两个dll引入到项目里面.可以写一个YinpinHelper.cs以供调用)

 

示例:

using引用命名空间:

using Microsoft.International.Converters.PinYinConverter;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.International.Converters.PinYinConverter;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("汉字转全拼结果:" + GetPinyin("测试"));
            Console.WriteLine("汉字转全拼首字母结果:" + GetFirstPinyin("测试"));
            Console.WriteLine("简体转繁体结果:" + GetTraditionalChinese("测试"));
            Console.WriteLine("繁体转简体结果:" + GetSimplifiedChinese("測試"));
            Console.ReadLine();
        }
 
        /// <summary> 
        /// 汉字转化为拼音
        /// </summary> 
        /// <param name="str">汉字</param> 
        /// <returns>全拼</returns> 
        public static string GetPinyin(string str)
        {
            string r = string.Empty;
            foreach (char obj in str)
            {
                try
                {
                    ChineseChar chineseChar = new ChineseChar(obj);
                    string t = chineseChar.Pinyins[0].ToString();
                    r += t.Substring(0, t.Length - 1);
                }
                catch
                {
                    r += obj.ToString();
                }
            }
            return r;
        }
 
        /// <summary> 
        /// 汉字转化为拼音首字母
        /// </summary> 
        /// <param name="str">汉字</param> 
        /// <returns>首字母</returns> 
        public static string GetFirstPinyin(string str)
        {
            string r = string.Empty;
            foreach (char obj in str)
            {
                try
                {
                    ChineseChar chineseChar = new ChineseChar(obj);
                    string t = chineseChar.Pinyins[0].ToString();
                    r += t.Substring(0, 1);
                }
                catch
                {
                    r += obj.ToString();
                }
            }
            return r;
        }
 
        /// <summary> 
        /// 简体中文转化为繁体中文
        /// </summary> 
        /// <param name="str">汉字</param> 
        /// <returns>繁体中文</returns> 
        public static string GetTraditionalChinese(string str)
        {
            if (string.IsNullOrWhiteSpace(str.Replace(" ", "")))
            {
                return "";
            }
            string result = null;
            char[] CharSimples = str.ToCharArray();
            for (int i = 0; i < CharSimples.Length; i++)
            {
                if (ChineseChar.IsValidChar(CharSimples[i]))
                {
                    result += ChineseConverter.Convert(CharSimples[i].ToString(),
                        ChineseConversionDirection.SimplifiedToTraditional);
                }
                else
                {
                    result += CharSimples[i].ToString();
                }
            }
            return result;
        }
 
        /// <summary> 
        /// 繁体中文转化为简体中文
        /// </summary> 
        /// <param name="str">汉字</param> 
        /// <returns>简体中文</returns> 
        public static string GetSimplifiedChinese(string str)
        {
            if (string.IsNullOrWhiteSpace(str.Replace(" ", "")))
            {
                return "";
            }
            string result = null;
            char[] CharSimples = str.ToCharArray();
            for (int i = 0; i < CharSimples.Length; i++)
            {
                if (ChineseChar.IsValidChar(CharSimples[i]))
                {
                    result += ChineseConverter.Convert(CharSimples[i].ToString(),
                        ChineseConversionDirection.TraditionalToSimplified);
                }
                else
                {
                    result += CharSimples[i].ToString();
                }
            }
            return result;
        }
 
    }
}

 

 

转: https://blog.csdn.net/qq395537505/article/details/51848681

http://t.zoukankan.com/gguozhenqian-p-4086466.html

 

C#中使用微软语言包来获取中文汉字的拼音、拼音首字母、中文繁体

标签:测试   public   library   cat   示例   else   繁体中文   reading   zh-cn   

原文地址:https://www.cnblogs.com/fps2tao/p/14720992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!