StrToPinyin.cs
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;
namespace JM.Dreamzx.Bll
{
public class StrToPinyin
{
public StrToPinyin()
{ }
private static string[] strChineseCharList =
{
#region
"A阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓薆曖璦鴱皧瞹馤鑀鱫安侒峖桉氨庵谙萻腤鹌蓭誝鞌鞍盦馣鮟盫韽啽雸垵" ,
"A俺唵埯铵隌揞罯銨犴岸按荌案胺豻堓婩暗貋儑錌黯肮岇昂昻枊盎醠凹坳垇柪軪爊敖厫隞嗷嗸嶅廒滶獒獓遨熬璈蔜翱聱螯翶謷翺鳌鏖鰲鷔鼇芺袄媪镺襖岙扷岰傲奡奥嫯慠骜奧嶴澳懊擙謸鏊" ,
#endregion
};
/// <summary>
/// 获得一个字符串的汉语拼音码
/// </summary>
/// <param name="strText">字符串</param>
/// <returns>汉语拼音码,该字符串只包含大写的英文字母</returns>
public static string GetChineseSpell(string strText)
{
if (strText == null || strText.Length == 0)
return strText;
System.Text.StringBuilder myStr = new System.Text.StringBuilder();
foreach (char vChar in strText)
{
// 若是字母则直接输出
if ((vChar >= 'a' && vChar <= 'z') || (vChar >= 'A' && vChar <= 'Z'))
myStr.Append(char.ToUpper(vChar));
else if ((int)vChar >= 19968 && (int)vChar <= 40869)
{
// 若字符Unicode编码在编码范围则 查汉字列表进行转换输出
foreach (string strList in strChineseCharList)
{
if (strList.IndexOf(vChar) > 0)
{
myStr.Append(strList[0]);
break;
}
}
}
}
return myStr.ToString();
}// GetChineseSpell
}
}
ConvertHzToPz_Gb2312.cs
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;
using System.Text;
namespace JM.Dreamzx.Bll
{
public class ConvertHzToPz_Gb2312
{
public ConvertHzToPz_Gb2312()
{
//
// TODO: Add constructor logic here
//
}
//01-09区为特殊符号。
//16-55区为一级汉字,按拼音排序。
//56-87区为二级汉字,按部首/笔画排序。
// 每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。
//“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。
//例如“啊”字在大多数程序中,会以0xB0A1储存。(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。
//源码下载:http://www.51aspx.com/CV/HanZiZhuanPinYin
#region //gb2312中的汉字编码
private static readonly string[][] _Allhz =
new string[][]
{
new string[]{"A","啊阿呵吖嗄腌锕錒"},
new string[]{"Ai","爱矮挨哎碍癌艾唉哀蔼隘埃皑呆嗌嫒瑷暧捱砹嗳锿霭乂乃伌僾儗凒剀剴叆呃呝啀嘊噫噯堨塧壒奇娭娾嬡嵦愛懓懝敱敳昹曖欬欸毐溰溾濭烠焥璦皚皧瞹硋磑礙絠薆藹諰譪譺賹躷醷鎄鑀閡阂阨阸隑靄靉餲馤騃鯦鱫鴱崖"},
#endregion
public static string Convert(string str)
{
if (str == null)
return null;
Encoding ed = Encoding.GetEncoding("GB2312");
if (ed == null)
throw (new ArgumentException("没有找到编码集GB2312"));
int bh = 0;
char[] charary = str.ToCharArray();
byte[] bAry = new byte[2];
StringBuilder rtnSb = new StringBuilder();
for (int i = 0; i < charary.Length; i++)
{
bAry = ed.GetBytes(charary[i].ToString());
if (bAry.Length == 1)
{
rtnSb.Append(charary[i]);
continue;
}
bh = bAry[0] - 0xA0;
if (0x10 <= bh && bh <= 0x57)//是gb2312汉字
{
bool isFind = false;
for (int j = 0; j < _Allhz.Length; j++)
{
if (_Allhz[j][1].IndexOf(charary[i]) != -1)
{
rtnSb.Append(_Allhz[j][0]);
isFind = true;
break;
}
}
if (!isFind)
rtnSb.Append(charary[i]);
}
else
rtnSb.Append(charary[i]);
}
return rtnSb.ToString();
}
}
}
//lbPinyin.Text = "首字母是:" + StrToPinyin.GetChineseSpell(txtChn.Text) + "<br>拼音是:" + ConvertHzToPz_Gb2312.Convert(txtChn.Text);
string user_simple = StrToPinyin.GetChineseSpell(uname).ToLower();
string user_full = ConvertHzToPz_Gb2312.Convert(uname).ToLower();
(来源:http://www.iomo.cn)
分享到:
相关推荐
网上传的postgreSQL汉字转拼音的方法,是针对9.3的版本(相信你要是8.4的也搜到了但不能直接用,才来看我的),尝试了8.4的版本来做拼音处理。发现网上的《postgreSQL汉字转拼音》里面坑比较多,尝试纠正了一下,发...
C++,采用“拼音-中文”的数据字典的方式实现中文汉字转拼音,兼容多音字,字典为txt,后期可拓展易维护。在STL的map中查找效率16毫秒左右。
主要介绍了Mysql中文汉字转拼音的实现,并且每个汉字会转换全拼,使用Mysql自定义函数实现,需要的朋友可以参考下
C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
// 简单的高效的汉字转拼音、拼音转汉字类 // 包含20441个汉字26821拼音转换库文件,字库基本是网上最全的了,当然万一发现少了可以自己加入到字库中,一行一条记录加入到文本文件中即可,非常简单 // 算法方面没有...
支持2万+汉字转拼音
java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII
Java汉字转拼音(支持多音字)
Qt C++ 汉字转拼音与首字母,用Qt 5.5亲测可用
JS汉字转拼音,字母大小写转换,可直接使用的汉字转拼音JS
SQL中将汉字转换成拼音,这里是转换汉字首拼音,如果需要全部转换,在以下程序中稍微改几个数字就可以了
.NET实现汉字转拼音,汉字转拼音,语言转换 .NET实现汉字转拼音,汉字转拼音,语言转换 .NET实现汉字转拼音,汉字转拼音,语言转换 .NET实现汉字转拼音,汉字转拼音,语言转换
中文转拼音的js控件,引用非常简单。
汉字转拼音声母首字母 dll delphi
Java 中文转拼音/中文转五笔/汉字转拼音/汉字转五笔 字典. 通过 https://blog.csdn.net/qcl108/article/details/100981774 提供的 Java代码使用.
汉字转拼音 asp 文件汉字转拼音 asp 文件汉字转拼音 asp 文件
sql 汉字转拼音首字母 代码 function --汉字转拼音首字母sql Create FUNCTION dbo.fnpbGetPYFirstLetter ( @str NVARCHAR(4000) )
支持2万+汉字转拼音首字母
Java实现汉字转拼音功能,包括首字母和全拼,为大家减少时间,为此提供便捷。
文件里面已弄了使用说明,转换比较全面,已经开发和测试。可用于后台的URL的路径使用,以及其它方面的一些转换使用,详情自己挖掘...