工具类

ContractedBlock.gif ExpandedBlockStart.gif 拼音码
 
   
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BeidouWY.Common
{
public class PYM
{
/// <summary>
/// 生成拼音简码 /// </summary>
/// <param name="unicodeString"> Unicode编码字符串 </param>
/// <returns> 拼音简码:string </returns>
public static string GetPinyinCode( string unicodeString)
{
int i = 0 ;
ushort key = 0 ;
string strResult = string .Empty;

// 创建两个不同的encoding对象
Encoding unicode = Encoding.Unicode;
// 创建GBK码对象
Encoding gbk = Encoding.GetEncoding( 936 );
// 将unicode字符串转换为字节
byte [] unicodeBytes = unicode.GetBytes(unicodeString);
// 再转化为GBK码
byte [] gbkBytes = Encoding.Convert(unicode, gbk, unicodeBytes);
while (i < gbkBytes.Length)
{
// 如果为数字\字母\其他ASCII符号
if (gbkBytes[i] <= 127 )
{
strResult
= strResult + ( char )gbkBytes[i];
i
++ ;
}
#region 否则生成汉字拼音简码,取拼音首字母
else
{

key
= ( ushort )(gbkBytes[i] * 256 + gbkBytes[i + 1 ]);
if (key >= ' \uB0A1 ' && key <= ' \uB0C4 ' )
{
strResult
= strResult + " A " ;
}
else if (key >= ' \uB0C5 ' && key <= ' \uB2C0 ' )
{
strResult
= strResult + " B " ;
}
else if (key >= ' \uB2C1 ' && key <= ' \uB4ED ' )
{
strResult
= strResult + " C " ;
}
else if (key >= ' \uB4EE ' && key <= ' \uB6E9 ' )
{
strResult
= strResult + " D " ;
}
else if (key >= ' \uB6EA ' && key <= ' \uB7A1 ' )
{
strResult
= strResult + " E " ;
}
else if (key >= ' \uB7A2 ' && key <= ' \uB8C0 ' )
{
strResult
= strResult + " F " ;
}
else if (key >= ' \uB8C1 ' && key <= ' \uB9FD ' )
{
strResult
= strResult + " G " ;
}
else if (key >= ' \uB9FE ' && key <= ' \uBBF6 ' )
{
strResult
= strResult + " H " ;
}
else if (key >= ' \uBBF7 ' && key <= ' \uBFA5 ' )
{
strResult
= strResult + " J " ;
}
else if (key >= ' \uBFA6 ' && key <= ' \uC0AB ' )
{
strResult
= strResult + " K " ;
}
else if (key >= ' \uC0AC ' && key <= ' \uC2E7 ' )
{
strResult
= strResult + " L " ;
}
else if (key >= ' \uC2E8 ' && key <= ' \uC4C2 ' )
{
strResult
= strResult + " M " ;
}
else if (key >= ' \uC4C3 ' && key <= ' \uC5B5 ' )
{
strResult
= strResult + " N " ;
}
else if (key >= ' \uC5B6 ' && key <= ' \uC5BD ' )
{
strResult
= strResult + " O " ;
}
else if (key >= ' \uC5BE ' && key <= ' \uC6D9 ' )
{
strResult
= strResult + " P " ;
}
else if (key >= ' \uC6DA ' && key <= ' \uC8BA ' )
{
strResult
= strResult + " Q " ;
}
else if (key >= ' \uC8BB ' && key <= ' \uC8F5 ' )
{
strResult
= strResult + " R " ;
}
else if (key >= ' \uC8F6 ' && key <= ' \uCBF9 ' )
{
strResult
= strResult + " S " ;
}
else if (key >= ' \uCBFA ' && key <= ' \uCDD9 ' )
{
strResult
= strResult + " T " ;
}
else if (key >= ' \uCDDA ' && key <= ' \uCEF3 ' )
{
strResult
= strResult + " W " ;
}
else if (key >= ' \uCEF4 ' && key <= ' \uD188 ' )
{
strResult
= strResult + " X " ;
}
else if (key >= ' \uD1B9 ' && key <= ' \uD4D0 ' )
{
strResult
= strResult + " Y " ;
}
else if (key >= ' \uD4D1 ' && key <= ' \uD7F9 ' )
{
strResult
= strResult + " Z " ;
}
else
{
strResult
= strResult + " ? " ;
}
i
= i + 2 ;
}
#endregion
}
// end while

return strResult;



}
}
}

 

转载于:https://www.cnblogs.com/qinweilong/archive/2010/07/07/1773020.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值