您的位置:首页 > 编程语言 > C#

Visual Studio International Pack 类库提取汉字拼音

2014-12-04 00:00 417 查看
摘要: 调用微软Visual Studio International Pack 类库实现中文转拼音的操作

Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。 该软件包1.0版提供下面七个组件以增强.NET Framework对全球化软件应用开发的支持。

East Asia Numeric Formatting Library - 支持将小写的数字字符串格式化成简体中文,繁体中文,日文和韩文的大写数字字符串。

Japanese Kana Conversion Library - 支持将日文假名(Kana)转化为另一种日文字符。

Japanese Text Alignment Library - 支持日文特有的一种对齐格式。

Japanese Yomi Auto-Completion Library - 类库支持感知日文输入法的输入自动完成和一个文本框控件的示例。

Korean Auto Complete TextBox Control - 支持韩文输入法的智能感知和输入自动完成的文本框控件。

Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。

Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool - 支持简繁体中文之间的转换。该组件还包含一个Visual Studio集成开发环境中的插件(Add-in)支持简繁体中文资源文件之间的转换。
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=15251

添加引用dll:ChnCharInfo.dll

using Microsoft.International.Converters.PinYinConverter;
namespace Coder

{

public class ChinesePinYin

{

/// <summary>

/// 汉字转化为拼音

/// </summary>

/// <param name="szValue">汉字</param>

/// <returns>全拼</returns>

public static string GetPinyin(string szValue)

{

string r = string.Empty;

foreach (char c in szValue)

{

try

{

ChineseChar chineseChar = new ChineseChar(c);

string t = chineseChar.Pinyins[0].ToString();

r += t.Substring(0, t.Length - 1) + " ";

}

catch

{

r += c.ToString() + " "; ;

}

}

return r;

}

/// <summary>

/// 中文转拼音首字母

/// </summary>

/// <param name="szValue">中文</param>

/// <returns>首字母</returns>

public static string GetFirstPinyin(string szValue)

{

string r = string.Empty;

foreach (char c in szValue)

{

try

{

ChineseChar chineseChar = new ChineseChar(c);

string t = chineseChar.Pinyins[0].ToString();

r += t.Substring(0, 1) + " ";

}

catch

{

r += c.ToString() + " ";

}

}

return r;

}

/// <summary>

/// 获取拼音及声调

/// </summary>

/// <param name="szValue"></param>

/// <returns></returns>

public static string GetPinyinSD(string szValue)

{

string r = string.Empty;

foreach (char c in szValue)

{

try

{

ChineseChar chineseChar = new ChineseChar(c);

string t = chineseChar.Pinyins[0].ToString();

r += t.Substring(0, t.Length - 1) + GetSD(t.Last()) + " ";

}

catch

{

r += c.ToString() + " ";

}

}

return r;

}

/// <summary>

/// 返回声调符号

/// </summary>

/// <param name="p">1,2,3,4</param>

/// <returns>声调符号</returns>

private static string GetSD(char p)

{

if (p.Equals('1'))

return "ˉ";

else if (p.Equals('2'))

return "ˊ";

else if (p.Equals('3'))

return "ˇ";

else if (p.Equals('4'))

return "ˋ";

return string.Empty;

}

}

}


Console.WriteLine("中文转拼音: " + ChinesePinYin.GetPinyin("有钱就是任性,没钱就是倔强"));

Console.WriteLine("中文转拼音首字母: " + ChinesePinYin.GetFirstPinyin("有钱就是任性,没钱就是倔强"));

Console.WriteLine("中文转拼音及声调: " + ChinesePinYin.GetPinyinSD("有钱就是任性,没钱就是倔强"));


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  中文转拼音 c# net
相关文章推荐