首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 哪里有比较准确的汉字转首拼音的代码啊该怎么处理

2012-01-21 
|M| 哪里有比较准确的汉字转首拼音的代码啊哪里有比较准确的汉字转首拼音的代码啊以下是幕白兄的代码http:

|M| 哪里有比较准确的汉字转首拼音的代码啊
哪里有比较准确的
汉字转首拼音的代码啊
以下是幕白兄的代码
http://community.csdn.net/Expert/topic/5409/5409486.xml?temp=6.995791E-02
提的代码
但是在转"北京故宫"的时候转成bggg   而不是bjgg

谢谢 有没有比较准的(最好很准的呵呵) 谢谢了

[解决办法]
找个字库,放到数据库里!

[解决办法]
我有个拼音、汉字数据库,有56698条记录!
需要的话,告诉我,发给你!
[解决办法]
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/*
* 说明:此类用于将一个字符串找出首字声母,用法:ChineseConvert.UtilIndexCode(str);
*
*
*/
/// <summary>
/// ChineseConvert 的摘要说明
/// </summary>
public class ChineseConvert
{
public ChineseConvert()
{
}
/// <summary>
/// 返回字符串的首写字母字符串
/// </summary>
/// <param name= "IndexTxt "> 需得到首写字母的字符串 </param>
/// <returns> </returns>
public static String UtilIndexCode(String IndexTxt)
{
string _Temp = null;
for (int i = 0; i < IndexTxt.Length; i++)
_Temp = _Temp + GetOneIndex(IndexTxt.Substring(i, 1));
return _Temp;
}

//得到单个字符的首字母
private static String GetOneIndex(String OneIndexTxt)
{
if (Convert.ToChar(OneIndexTxt) > = 0 && Convert.ToChar(OneIndexTxt) < 256)
return OneIndexTxt;
else
return GetGbkX(OneIndexTxt);
}

//根据汉字拼音排序得到首字母
private static string GetGbkX(string str)
{
if (str.CompareTo( "吖 ") < 0)
{
return str;
}
if (str.CompareTo( "八 ") < 0)
{
return "A ";
}

if (str.CompareTo( "嚓 ") < 0)
{
return "B ";
}

if (str.CompareTo( "咑 ") < 0)
{
return "C ";
}
if (str.CompareTo( "妸 ") < 0)
{
return "D ";
}
if (str.CompareTo( "发 ") < 0)
{
return "E ";
}
if (str.CompareTo( "旮 ") < 0)
{
return "F ";
}
if (str.CompareTo( "铪 ") < 0)
{
return "G ";
}
if (str.CompareTo( "讥 ") < 0)
{
return "H ";
}
if (str.CompareTo( "咔 ") < 0)
{
return "J ";
}
if (str.CompareTo( "垃 ") < 0)
{
return "K ";
}
if (str.CompareTo( "嘸 ") < 0)
{
return "L ";
}
if (str.CompareTo( "拏 ") < 0)
{
return "M ";
}
if (str.CompareTo( "噢 ") < 0)
{
return "N ";
}
if (str.CompareTo( "妑 ") < 0)


{
return "O ";
}
if (str.CompareTo( "七 ") < 0)
{
return "P ";
}
if (str.CompareTo( "亽 ") < 0)
{
return "Q ";
}
if (str.CompareTo( "仨 ") < 0)
{
return "R ";
}
if (str.CompareTo( "他 ") < 0)
{
return "S ";
}
if (str.CompareTo( "哇 ") < 0)
{
return "T ";
}
if (str.CompareTo( "夕 ") < 0)
{
return "W ";
}
if (str.CompareTo( "丫 ") < 0)
{
return "X ";
}
if (str.CompareTo( "帀 ") < 0)
{
return "Y ";
}
if (str.CompareTo( "咗 ") < 0)
{
return "Z ";
}
return str;
}
}

[解决办法]
...学习
[解决办法]
我以前用过一个,在网上找的,很好用,就是太长了,没法贴,楼主如果需要,去我的网络U盘的电子书文件夹里下载吧

http://lxcnn.5u6.net/index.aspx
[解决办法]
不过这类程序都存在一个问题,就是多音字,比如“太长了”这里的“长”,会得到“Z”,因为把它读为“zhang”了,如果想分辩这个,估计程序很难实现了
[解决办法]
不错,呵呵!
[解决办法]
好好学习,天天向上。
呵呵
[解决办法]
我给你的那个sql的不行吗?
[解决办法]
CREATE FUNCTION f_GetPY(@str nvarchar(4000))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @py TABLE(
ch char(1),
hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)
INSERT @py SELECT 'A ',N '吖 ',N '鏊 '
UNION ALL SELECT 'B ',N '八 ',N '簿 '
UNION ALL SELECT 'C ',N '嚓 ',N '错 '
UNION ALL SELECT 'D ',N '哒 ',N '跺 '
UNION ALL SELECT 'E ',N '屙 ',N '贰 '
UNION ALL SELECT 'F ',N '发 ',N '馥 '
UNION ALL SELECT 'G ',N '旮 ',N '过 '
UNION ALL SELECT 'H ',N '铪 ',N '蠖 '
UNION ALL SELECT 'J ',N '丌 ',N '竣 '
UNION ALL SELECT 'K ',N '咔 ',N '廓 '
UNION ALL SELECT 'L ',N '垃 ',N '雒 '
UNION ALL SELECT 'M ',N '妈 ',N '穆 '
UNION ALL SELECT 'N ',N '拿 ',N '糯 '
UNION ALL SELECT 'O ',N '噢 ',N '沤 '
UNION ALL SELECT 'P ',N '趴 ',N '曝 '
UNION ALL SELECT 'Q ',N '七 ',N '群 '
UNION ALL SELECT 'R ',N '蚺 ',N '箬 '
UNION ALL SELECT 'S ',N '仨 ',N '锁 '
UNION ALL SELECT 'T ',N '他 ',N '箨 '
UNION ALL SELECT 'W ',N '哇 ',N '鋈 '
UNION ALL SELECT 'X ',N '夕 ',N '蕈 '
UNION ALL SELECT 'Y ',N '丫 ',N '蕴 '


UNION ALL SELECT 'Z ',N '匝 ',N '做 '
DECLARE @i int
SET @i=PATINDEX( '%[吖-做]% ' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
WHILE @i> 0
SELECT @str=REPLACE(@str,SUBSTRING(@str,@i,1),ch)
,@i=PATINDEX( '%[吖-做]% ' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
FROM @py
WHERE SUBSTRING(@str,@i,1) BETWEEN hz1 AND hz2
RETURN(@str)
END


[解决办法]
应该可以的,我试过了..
[解决办法]
一个比较齐全的汉字字库对应拼音 操作实现
数据从windows字库中导出:)

http://blog.csdn.net/hertcloud/archive/2007/03/22/1537789.aspx

使用GetPyName获取即可
[解决办法]
康熙字典 数据库 :)
[解决办法]
参考:

http://www.google.com/search?hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&q=IMEGEN.EXE+winpy.mb&lr=lang_zh-CN%7Clang_zh-TW

把机器上的拼音码表转换为.txt,然后放到自己的数据库中。
[解决办法]
要注意汉字的多音字。“今晚播放电视连续剧剧水浒传”可能有十几种读法,你应该考虑到这个。在写mis的时候,如果允许用户录入拼音字头查找汉字,如果不考虑多音字,会使得你的功能变得很业余、看上去无用。
[解决办法]
up
[解决办法]
这个基本上很准
public string GetPY (string str)
{
string tempStr = " ";
foreach (char c in str)
{
if (((int)c > = 33) && ((int)c <= 126))
{//字母和符号原样保留
tempStr += c.ToString();
}
else
{
//累加拼音声母
tempStr += GetGbkPY(c.ToString());
}
}
return tempStr;
}
public static string GetGbkPY(string str)
{
if (str.CompareTo( "吖 ") < 0) return str;
if (str.CompareTo( "八 ") < 0) return "a ";
if (str.CompareTo( "嚓 ") < 0) return "b ";
if (str.CompareTo( "咑 ") < 0) return "c ";
if (str.CompareTo( "妸 ") < 0) return "d ";
if (str.CompareTo( "发 ") < 0) return "e ";
if (str.CompareTo( "旮 ") < 0) return "f ";
if (str.CompareTo( "铪 ") < 0) return "g ";
if (str.CompareTo( "讥 ") < 0) return "h ";
if (str.CompareTo( "咔 ") < 0) return "j ";
if (str.CompareTo( "垃 ") < 0) return "k ";
if (str.CompareTo( "嘸 ") < 0) return "l ";
if (str.CompareTo( "拏 ") < 0) return "m ";
if (str.CompareTo( "噢 ") < 0) return "n ";
if (str.CompareTo( "妑 ") < 0) return "o ";
if (str.CompareTo( "七 ") < 0) return "p ";
if (str.CompareTo( "亽 ") < 0) return "q ";
if (str.CompareTo( "仨 ") < 0) return "r ";
if (str.CompareTo( "他 ") < 0) return "w ";
if (str.CompareTo( "哇 ") < 0) return "y ";


if (str.CompareTo( "夕 ") < 0) return "w ";
if (str.CompareTo( "丫 ") < 0) return "x ";
if (str.CompareTo( "帀 ") < 0) return "y ";
if (str.CompareTo( "咗 ") < 0) return "z ";
return str;
}

热点排行