public static class SpellHelper
{
/// <summary>
/// 获取每个字符的首字母
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static string GetSpellCode(string str)
{
string _Temp = null;
if (string.IsNullOrEmpty(str))
return "";
for (int i = 0; i < str.Length; i++)
_Temp = _Temp + GetOneIndex(str.Substring(i, 1));
return _Temp.ToUpper();
}
//得到单个字符的首字母
private static string GetOneIndex(string OneIndexTxt)
{
if (Convert.ToChar(OneIndexTxt) >= 0 && Convert.ToChar(OneIndexTxt) < 256)
return ""; //除去不是汉字的
else
{
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
return GetX(Convert.ToInt32(
string.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[0]) - 160)
+ string.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[1]) - 160)
));
}
}
//根据区位得到首字母
private static string GetX(int GBCode)
{
if (GBCode >= 1601 && GBCode < 1637) return "A