作者: 乔克斯
查看: 9530|回复: 21

主题标签Tag

打印 上一主题 下一主题

[源码] 【文字转拼音】基于Simplified实现的汉字转拼音

[复制链接]
跳转到指定楼层
楼主
乔克斯 发表于 2015-4-18 23:35:16 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
查看: 9530|回复: 21
效果截图:
1.主界面。


功能说明:

命名空间在Microsoft.International.Converters.PinYinConverter;
基于微软的拼音帮助类Simplified Chinese Pin-Yin Conversion Library。
类已经封装好了,调用非常方便,源码中已经包含了 ChnCharInfo.dll
微软的东西还是比较靠谱的,英文字母,符合,中文符合都可以正常显示不会影响识别结果。
主要可以用在一些根据中文来实现自动拼音命名的地方,比如根据商店中文名称生成英文网址等等,因为并不是所有的地方使用中文都可以正常读取或运行的。
不想下载源码的童鞋可以自己百度一个ChnCharInfo.dll然后参照下面的代码:
[C#] 纯文本查看 复制代码
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.International.Converters.PinYinConverter;
namespace HelloCsharpPingYin
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button_ok_Click(object sender, EventArgs e)
        {
            textBox_word.Text = PY.GetPinyin(textBox_chn.Text).ToLower();

            
        }
        public class PY
        {
            /// <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;
            }
        }
    }
}


案例源码下载:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 转播转播
回复 论坛版权

使用道具 举报

22#
yooyoyoyoy 发表于 2019-1-29 13:24:43 | 只看该作者
对多音字的支持 好像是个问题啊  肩膀 和 膀胱 显示的 bang guang
21#
yooyoyoyoy 发表于 2019-1-29 13:20:46 | 只看该作者
支持一下 不知道多音字的支持怎么样 试试
20#
letto881 发表于 2019-1-23 09:05:38 | 只看该作者
- -这都有~~
回复

使用道具 举报

19#
pasoftware 发表于 2019-1-22 09:33:05 | 只看该作者
太好了,正需要!!!!
18#
Wushao 发表于 2019-1-16 09:51:36 | 只看该作者
感谢楼主分享
17#
linewwei 发表于 2017-6-14 11:17:01 | 只看该作者

感谢楼主的分享
16#
gts 发表于 2017-4-24 03:30:33 | 只看该作者
虽然没看到效果,但觉得很强大。
15#
浮雨_One 发表于 2017-3-25 00:33:15 | 只看该作者
感谢分享!
回复

使用道具 举报

14#
wesson2016 发表于 2017-1-20 13:21:30 | 只看该作者
学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-5 00:53, Processed in 0.587089 second(s), 36 queries , Gzip On.

快速回复 返回顶部 返回列表