标签:技术 -128 div bing ken order pos csdn space
需要转换的汉字 /// 返回汉字对应的拼音 public static string ToPinYin(string txt) { txt = txt.Trim(); byte[] arr = new byte[2]; //每个汉字为2字节 StringBuilder result = new StringBuilder();//使用StringBuilder优化字符串连接 int charCode = 0; int arr1 = 0; int arr2 = 0; char[] arrChar = txt.ToCharArray(); for (int j = 0; j < arrChar.Length; j++) //遍历输入的字符 { arr = System.Text.Encoding.Default.GetBytes(arrChar[j].ToString());//根据系统默认编码得到字节码 if (arr.Length == 1)//如果只有1字节说明该字符不是汉字,结束本次循环 { result.Append(arrChar[j].ToString()); continue; } arr1 = (short)(arr[0]); //取字节1 arr2 = (short)(arr[1]); //取字节2 charCode = arr1 * 256 + arr2 - 65536;//计算汉字的编码 if (charCode > -10254 || charCode < -20319) //如果不在汉字编码范围内则不改变 { result.Append(arrChar[j]); } else { //根据汉字编码范围查找对应的拼音并保存到结果中 //由于charCode的键不一定存在,所以要找比他更小的键上一个键 if (!CodeCollections.ContainsKey(charCode)) { for (int i = charCode; i <= 0; --i) { if (CodeCollections.ContainsKey(i)) { result.Append(" " + CodeCollections[i] + " "); break; } } } else { result.Append(" " + CodeCollections[charCode] + " "); } } } return result.ToString(); } }
标签:技术 -128 div bing ken order pos csdn space
原文地址:http://www.cnblogs.com/fengyingwang/p/7591180.html