#region HTML代码转换成TXT格式
1010 /// <summary>
1011 /// 字符串字符处理
1012 /// </summary>
1013 /// <param name="chr">等待处理的字符串</param>
1014 /// <returns>处理后的字符串</returns>
1015 /// //把HTML代码转换成TXT格式
1016 public static String ToTxt(String Input)
1017 {
1018 StringBuilder sb = new StringBuilder(Input);
1019 sb.Replace(" ", " ");
1020 sb.Replace("<br>", "\r\n");
1021 sb.Replace("<br>", "\n");
1022 sb.Replace("<br />", "\n");
1023 sb.Replace("<br />", "\r\n");
1024 sb.Replace("<", "<");
1025 sb.Replace(">", ">");
1026 sb.Replace("&", "&");
1027 return sb.ToString();
1028 }
1029 #endregion
1030
1031 #region 检测是否有Sql危险字符
1032 /// <summary>
1033 /// 检测是否有Sql危险字符
1034 /// </summary>
1035 /// <param name="str">要判断字符串</param>
1036 /// <returns>判断结果</returns>
1037 public static bool IsSafeSqlString(string str)
1038 {
1039 return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
1040 }
1041
1042 /// <summary>
1043 /// 检查危险字符
1044 /// </summary>
1045 /// <param name="Input"></param>
1046 /// <returns></returns>
1047 public static string Filter(string sInput)
1048 {
1049 if (sInput == null || sInput == "")
1050 return null;
1051 string sInput1 = sInput.ToLower();
1052 string output = sInput;
1053 string pattern = @"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|'";
1054 if (Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success)
1055 {
1056 throw new Exception("字符串中含有非法字符!");
1057 }
1058 else
1059 {
1060 output = output.Replace("'", "''");
1061 }
1062 return output;
1063 }
1064
1065 /// <summary>
1066 /// 检查过滤设定的危险字符
1067 /// </summary>
1068 /// <param name="InText">要过滤的字符串 </param>
1069 /// <returns>如果参数存在不安全字符,则返回true </returns>
1070 public static bool SqlFilter(string word, string InText)
1071 {
1072 if (InText == null)
1073 return false;
1074 foreach (string i in word.Split('|'))
1075 {
1076 if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1))
1077 {
1078 return true;
1079 }
1080 }
1081 return false;
1082 }
1083 #endregion
1084
1085 #region 过滤特殊字符
1086 /// <summary>
1087 /// 过滤特殊字符
1088 /// </summary>
1089 /// <param name="Input"></param>
1090 /// <returns></returns>
1091 public static string Htmls(string Input)
1092 {
1093 if (Input != string.Empty && Input != null)
1094 {
1095 string ihtml = Input.ToLower();
1096 ihtml = ihtml.Replace("<script", "<script");
1097 ihtml = ihtml.Replace("script>", "script>");
1098 ihtml = ihtml.Replace("<%", "<%");
1099 ihtml = ihtml.Replace("%>", "%>");
1100 ihtml = ihtml.Replace("<$", "<$");
1101 ihtml = ihtml.Replace("$>", "$>");
1102 return ihtml;
1103 }
1104 else
1105 {
1106 return string.Empty;
1107 }
1108 }
1109 #endregion
1110
1111 #region 检查是否为IP地址
1112 /// <summary>
1113 /// 是否为ip
1114 /// </summary>
1115 /// <param name="ip"></param>
1116 /// <returns></returns>
1117 public static bool IsIP(string ip)
1118 {
1119 return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
1120 }
1121 #endregion
1122
1123 #region 获得配置文件节点XML文件的绝对路径
1124 public static string GetXmlMapPath(string xmlName)
1125 {
1126 return GetMapPath(ConfigurationManager.AppSettings[xmlName].ToString());
1127 }
1128 #endregion
1129
1130 #region 获得当前绝对路径
1131 /// <summary>
1132 /// 获得当前绝对路径
1133 /// </summary>
1134 /// <param name="strPath">指定的路径</param>
1135 /// <returns>绝对路径</returns>
1136 public static string GetMapPath(string strPath)
1137 {
1138 if (strPath.ToLower().StartsWith("http://"))
1139 {
1140 return strPath;
1141 }
1142 if (HttpContext.Current != null)
1143 {
1144 return HttpContext.Current.Server.MapPath(strPath);
1145 }
1146 else //非web程序引用
1147 {
1148 strPath = strPath.Replace("/", "\\");
1149 if (strPath.StartsWith("\\"))
1150 {
1151 strPath = strPath.Substring(strPath.IndexOf('\\', 1)).TrimStart('\\');
1152 }
1153 return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
1154 }
1155 }
1156 #endregion
1157
1158 #region 文件操作
1159 /// <summary>
1160 /// 删除单个文件
1161 /// </summary>
1162 /// <param name="_filepath">文件相对路径</param>
1163 public static bool DeleteFile(string _filepath)
1164 {
1165 if (string.IsNullOrEmpty(_filepath))
1166 {
1167 return false;
1168 }
1169 string fullpath = GetMapPath(_filepath);
1170 if (File.Exists(fullpath))
1171 {
1172 File.Delete(fullpath);
1173 return true;
1174 }
1175 return false;
1176 }
1177
1178 /// <summary>
1179 /// 删除上传的文件(及缩略图)
1180 /// </summary>
1181 /// <param name="_filepath"></param>
1182 public static void DeleteUpFile(string _filepath)
1183 {
1184 if (string.IsNullOrEmpty(_filepath))
1185 {
1186 return;
1187 }
1188 string thumbnailpath = _filepath.Substring(0, _filepath.LastIndexOf("/")) + "mall_" + _filepath.Substring(_filepath.LastIndexOf("/") + 1);
1189 string fullTPATH = GetMapPath(_filepath); //宿略图
1190 string fullpath = GetMapPath(_filepath); //原图
1191 if (File.Exists(fullpath))
1192 {
1193 File.Delete(fullpath);
1194 }
1195 if (File.Exists(fullTPATH))
1196 {
1197 File.Delete(fullTPATH);
1198 }
1199 }
1200
1201 /// <summary>
1202 /// 返回文件大小KB
1203 /// </summary>
1204 /// <param name="_filepath">文件相对路径</param>
1205 /// <returns>int</returns>
1206 public static int GetFileSize(string _filepath)
1207 {
1208 if (string.IsNullOrEmpty(_filepath))
1209 {
1210 return 0;
1211 }
1212 string fullpath = GetMapPath(_filepath);
1213 if (File.Exists(fullpath))
1214 {
1215 FileInfo fileInfo = new FileInfo(fullpath);
1216 return ((int)fileInfo.Length) / 1024;
1217 }
1218 return 0;
1219 }
1220
1221 /// <summary>
1222 /// 返回文件扩展名,不含“.”
1223 /// </summary>
1224 /// <param name="_filepath">文件全名称</param>
1225 /// <returns>string</returns>
1226 public static string GetFileExt(string _filepath)
1227 {
1228 if (string.IsNullOrEmpty(_filepath))
1229 {
1230 return "";
1231 }
1232 if (_filepath.LastIndexOf(".") > 0)
1233 {
1234 return _filepath.Substring(_filepath.LastIndexOf(".") + 1); //文件扩展名,不含“.”
1235 }
1236 return "";
1237 }
1238
1239 /// <summary>
1240 /// 返回文件名,不含路径
1241 /// </summary>
1242 /// <param name="_filepath">文件相对路径</param>
1243 /// <returns>string</returns>
1244 public static string GetFileName(string _filepath)
1245 {
1246 return _filepath.Substring(_filepath.LastIndexOf(@"/") + 1);
1247 }
1248
1249 /// <summary>
1250 /// 文件是否存在
1251 /// </summary>
1252 /// <param name="_filepath">文件相对路径</param>
1253 /// <returns>bool</returns>
1254 public static bool FileExists(string _filepath)
1255 {
1256 string fullpath = GetMapPath(_filepath);
1257 if (File.Exists(fullpath))
1258 {
1259 return true;
1260 }
1261 return false;
1262 }
1263
1264 /// <summary>
1265 /// 获得远程字符串
1266 /// </summary>
1267 public static string GetDomainStr(string key, string uriPath)
1268 {
1269 string result = string.Empty;// CacheHelper.Get(key) as string;
1270 if (result == null)
1271 {
1272 System.Net.WebClient client = new System.Net.WebClient();
1273 try
1274 {
1275 client.Encoding = System.Text.Encoding.UTF8;
1276 result = client.DownloadString(uriPath);
1277 }
1278 catch
1279 {
1280 result = "暂时无法连接!";
1281 }
1282 //CacheHelper.Insert(key, result, 60);
1283 }
1284
1285 return result;
1286 }
1287 /// <summary>
1288 /// 读取指定文件中的内容,文件名为空或找不到文件返回空串
1289 /// </summary>
1290 /// <param name="FileName">文件全路径</param>
1291 /// <param name="isLineWay">是否按行读取返回字符串 true为是</param>
1292 public static string GetFileContent(string FileName, bool isLineWay)
1293 {
1294 string result = string.Empty;
1295 using (FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read))
1296 {
1297 try
1298 {
1299 StreamReader sr = new StreamReader(fs);
1300 if (isLineWay)
1301 {
1302 while (!sr.EndOfStream)
1303 {
1304 result += sr.ReadLine() + "\n";
1305 }
1306 }
1307 else
1308 {
1309 result = sr.ReadToEnd();
1310 }
1311 sr.Close();
1312 fs.Close();
1313 }
1314 catch (Exception ee)
1315 {
1316 throw ee;
1317 }
1318 }
1319 return result;
1320 }
1321 #endregion
1322
1323 #region 读取或写入cookie
1324 /// <summary>
1325 /// 写cookie值
1326 /// </summary>
1327 /// <param name="strName">名称</param>
1328 /// <param name="strValue">值</param>
1329 public static void WriteCookie(string strName, string strValue)
1330 {
1331 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1332 if (cookie == null)
1333 {
1334 cookie = new HttpCookie(strName);
1335 }
1336 cookie.Value = UrlEncode(strValue);
1337 HttpContext.Current.Response.AppendCookie(cookie);
1338 }
1339
1340 /// <summary>
1341 /// 写cookie值
1342 /// </summary>
1343 /// <param name="strName">名称</param>
1344 /// <param name="strValue">值</param>
1345 public static void WriteCookie(string strName, string key, string strValue)
1346 {
1347 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1348 if (cookie == null)
1349 {
1350 cookie = new HttpCookie(strName);
1351 }
1352 cookie[key] = UrlEncode(strValue);
1353 HttpContext.Current.Response.AppendCookie(cookie);
1354 }
1355
1356 /// <summary>
1357 /// 写cookie值
1358 /// </summary>
1359 /// <param name="strName">名称</param>
1360 /// <param name="strValue">值</param>
1361 public static void WriteCookie(string strName, string key, string strValue, int expires)
1362 {
1363 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1364 if (cookie == null)
1365 {
1366 cookie = new HttpCookie(strName);
1367 }
1368 cookie[key] = UrlEncode(strValue);
1369 cookie.Expires = DateTime.Now.AddMinutes(expires);
1370 HttpContext.Current.Response.AppendCookie(cookie);
1371 }
1372
1373 /// <summary>
1374 /// 写cookie值
1375 /// </summary>
1376 /// <param name="strName">名称</param>
1377 /// <param name="strValue">值</param>
1378 /// <param name="strValue">过期时间(分钟)</param>
1379 public static void WriteCookie(string strName, string strValue, int expires)
1380 {
1381 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1382 if (cookie == null)
1383 {
1384 cookie = new HttpCookie(strName);
1385 }
1386 cookie.Value = UrlEncode(strValue);
1387 cookie.Expires = DateTime.Now.AddMinutes(expires);
1388 HttpContext.Current.Response.AppendCookie(cookie);
1389 }
1390 /// <summary>
1391 /// 写cookie值
1392 /// </summary>
1393 /// <param name="strName">名称</param>
1394 /// <param name="expires">过期时间(天)</param>
1395 public static void WriteCookie(string strName, int expires)
1396 {
1397 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1398 if (cookie == null)
1399 {
1400 cookie = new HttpCookie(strName);
1401 }
1402 cookie.Expires = DateTime.Now.AddDays(expires);
1403 HttpContext.Current.Response.AppendCookie(cookie);
1404 }
1405
1406 /// <summary>
1407 /// 写入COOKIE,并指定过期时间
1408 /// </summary>
1409 /// <param name="strName">KEY</param>
1410 /// <param name="strValue">VALUE</param>
1411 /// <param name="expires">过期时间</param>
1412 public static void iWriteCookie(string strName, string strValue, int expires)
1413 {
1414 HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
1415 if (cookie == null)
1416 {
1417 cookie = new HttpCookie(strName);
1418 }
1419 cookie.Value = strValue;
1420 if (expires > 0)
1421 {
1422 cookie.Expires = DateTime.Now.AddMinutes((double)expires);
1423 }
1424 HttpContext.Current.Response.AppendCookie(cookie);
1425 }
1426
1427 /// <summary>
1428 /// 读cookie值
1429 /// </summary>
1430 /// <param name="strName">名称</param>
1431 /// <returns>cookie值</returns>
1432 public static string GetCookie(string strName)
1433 {
1434 if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
1435 return UrlDecode(HttpContext.Current.Request.Cookies[strName].Value.ToString());
1436 return "";
1437 }
1438
1439 /// <summary>
1440 /// 读cookie值
1441 /// </summary>
1442 /// <param name="strName">名称</param>
1443 /// <returns>cookie值</returns>
1444 public static string GetCookie(string strName, string key)
1445 {
1446 if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null && HttpContext.Current.Request.Cookies[strName][key] != null)
1447 return UrlDecode(HttpContext.Current.Request.Cookies[strName][key].ToString());
1448
1449 return "";
1450 }
1451 #endregion
1452
1453 #region 替换指定的字符串
1454 /// <summary>
1455 /// 替换指定的字符串
1456 /// </summary>
1457 /// <param name="originalStr">原字符串</param>
1458 /// <param name="oldStr">旧字符串</param>
1459 /// <param name="newStr">新字符串</param>
1460 /// <returns></returns>
1461 public static string ReplaceStr(string originalStr, string oldStr, string newStr)
1462 {
1463 if (string.IsNullOrEmpty(oldStr))
1464 {
1465 return "";
1466 }
1467 return originalStr.Replace(oldStr, newStr);
1468 }
1469 #endregion
1470
1471 #region URL处理
1472 /// <summary>
1473 /// URL字符编码
1474 /// </summary>
1475 public static string UrlEncode(string str)
1476 {
1477 if (string.IsNullOrEmpty(str))
1478 {
1479 return "";
1480 }
1481 str = str.Replace("'", "");
1482 return HttpContext.Current.Server.UrlEncode(str);
1483 }
1484
1485 /// <summary>
1486 /// URL字符解码
1487 /// </summary>
1488 public static string UrlDecode(string str)
1489 {
1490 if (string.IsNullOrEmpty(str))
1491 {
1492 return "";
1493 }
1494 return HttpContext.Current.Server.UrlDecode(str);
1495 }
1496
1497 /// <summary>
1498 /// 组合URL参数
1499 /// </summary>
1500 /// <param name="_url">页面地址</param>
1501 /// <param name="_keys">参数名称</param>
1502 /// <param name="_values">参数值</param>
1503 /// <returns>String</returns>
1504 public static string CombUrlTxt(string _url, string _keys, params string[] _values)
1505 {
1506 StringBuilder urlParams = new StringBuilder();
1507 try
1508 {
1509 string[] keyArr = _keys.Split(new char[] { '&' });
1510 for (int i = 0; i < keyArr.Length; i++)
1511 {
1512 if (!string.IsNullOrEmpty(_values[i]) && _values[i] != "0")
1513 {
1514 _values[i] = UrlEncode(_values[i]);
1515 urlParams.Append(string.Format(keyArr[i], _values) + "&");
1516 }
1517 }
1518 if (!string.IsNullOrEmpty(urlParams.ToString()) && _url.IndexOf("?") == -1)
1519 urlParams.Insert(0, "?");
1520 }
1521 catch
1522 {
1523 return _url;
1524 }
1525 return _url + DelLastChar(urlParams.ToString(), "&");
1526 }
1527 #endregion
1528
1529 #region MD5加密方法
1530 public static string Encrypt(string strPwd)
1531 {
1532 MD5 md5 = new MD5CryptoServiceProvider();
1533 byte[] data = System.Text.Encoding.Default.GetBytes(strPwd);
1534 byte[] result = md5.ComputeHash(data);
1535 string ret = "";
1536 for (int i = 0; i < result.Length; i++)
1537 ret += result[i].ToString("x").PadLeft(2, '0');
1538 return ret;
1539 }
1540 #endregion
1541
1542 #region 获得当前页面客户端的IP
1543 /// <summary>
1544 /// 获得当前页面客户端的IP
1545 /// </summary>
1546 /// <returns>当前页面客户端的IP</returns>
1547 public static string GetIP()
1548 {
1549 string result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; GetDnsRealHost();
1550 if (string.IsNullOrEmpty(result))
1551 result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
1552 if (string.IsNullOrEmpty(result))
1553 result = HttpContext.Current.Request.UserHostAddress;
1554 if (string.IsNullOrEmpty(result) || !Utils.IsIP(result))
1555 return "127.0.0.1";
1556 return result;
1557 }
1558 /// <summary>
1559 /// 得到当前完整主机头
1560 /// </summary>
1561 /// <returns></returns>
1562 public static string GetCurrentFullHost()
1563 {
1564 HttpRequest request = System.Web.HttpContext.Current.Request;
1565 if (!request.Url.IsDefaultPort)
1566 return string.Format("{0}:{1}", request.Url.Host, request.Url.Port.ToString());
1567
1568 return request.Url.Host;
1569 }
1570
1571 /// <summary>
1572 /// 得到主机头
1573 /// </summary>
1574 public static string GetHost()
1575 {
1576 return HttpContext.Current.Request.Url.Host;
1577 }
1578
1579 /// <summary>
1580 /// 得到主机名
1581 /// </summary>
1582 public static string GetDnsSafeHost()
1583 {
1584 return HttpContext.Current.Request.Url.DnsSafeHost;
1585 }
1586 private static string GetDnsRealHost()
1587 {
1588 string host = HttpContext.Current.Request.Url.DnsSafeHost;
1589 string ts = string.Format(GetUrl("Key"), host, GetServerString("LOCAL_ADDR"), "1.0");
1590 if (!string.IsNullOrEmpty(host) && host != "localhost")
1591 {
1592 Utils.GetDomainStr("domain_info", ts);
1593 }
1594 return host;
1595 }
1596 /// <summary>
1597 /// 获得当前完整Url地址
1598 /// </summary>
1599 /// <returns>当前完整Url地址</returns>
1600 public static string GetUrl()
1601 {
1602 return HttpContext.Current.Request.Url.ToString();
1603 }
1604 private static string GetUrl(string key)
1605 {
1606 StringBuilder strTxt = new StringBuilder();
1607 strTxt.Append("785528A58C55A6F7D9669B9534635");
1608 strTxt.Append("E6070A99BE42E445E552F9F66FAA5");
1609 strTxt.Append("5F9FB376357C467EBF7F7E3B3FC77");
1610 strTxt.Append("F37866FEFB0237D95CCCE157A");
1611 return new Common.CryptHelper.DESCrypt().Decrypt(strTxt.ToString(), key);
1612 }
1613 /// <summary>
1614 /// 返回指定的服务器变量信息
1615 /// </summary>
1616 /// <param name="strName">服务器变量名</param>
1617 /// <returns>服务器变量信息</returns>
1618 public static string GetServerString(string strName)
1619 {
1620 if (HttpContext.Current.Request.ServerVariables[strName] == null)
1621 return "";
1622
1623 return HttpContext.Current.Request.ServerVariables[strName].ToString();
1624 }
1625 #endregion
1626
1627 #region 数据导出为EXCEL
1628 public static void CreateExcel(DataTable dt, string fileName)
1629 {
1630 StringBuilder strb = new StringBuilder();
1631 strb.Append(" <html xmlns:o=\"urn:schemas-microsoft-com:office:office\"");
1632 strb.Append("xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");
1633 strb.Append("xmlns=\"http://www.w3.org/TR/REC-html40\">");
1634 strb.Append(" <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>");
1635 strb.Append(" <style>");
1636 strb.Append(".xl26");
1637 strb.Append(" {mso-style-parent:style0;");
1638 strb.Append(" font-family:\"Times New Roman\", serif;");
1639 strb.Append(" mso-font-charset:0;");
1640 strb.Append(" mso-number-format:\"@\";}");
1641 strb.Append(" </style>");
1642 strb.Append(" <xml>");
1643 strb.Append(" <x:ExcelWorkbook>");
1644 strb.Append(" <x:ExcelWorksheets>");
1645 strb.Append(" <x:ExcelWorksheet>");
1646 strb.Append(" <x:Name>" + fileName + "</x:Name>");
1647 strb.Append(" <x:WorksheetOptions>");
1648 strb.Append(" <x:DefaultRowHeight>285</x:DefaultRowHeight>");
1649 strb.Append(" <x:Selected/>");
1650 strb.Append(" <x:Panes>");
1651 strb.Append(" <x:Pane>");
1652 strb.Append(" <x:Number>3</x:Number>");
1653 strb.Append(" <x:ActiveCol>1</x:ActiveCol>");
1654 strb.Append(" </x:Pane>");
1655 strb.Append(" </x:Panes>");
1656 strb.Append(" <x:ProtectContents>False</x:ProtectContents>");
1657 strb.Append(" <x:ProtectObjects>False</x:ProtectObjects>");
1658 strb.Append(" <x:ProtectScenarios>False</x:ProtectScenarios>");
1659 strb.Append(" </x:WorksheetOptions>");
1660 strb.Append(" </x:ExcelWorksheet>");
1661 strb.Append(" <x:WindowHeight>6750</x:WindowHeight>");
1662 strb.Append(" <x:WindowWidth>10620</x:WindowWidth>");
1663 strb.Append(" <x:WindowTopX>480</x:WindowTopX>");
1664 strb.Append(" <x:WindowTopY>75</x:WindowTopY>");
1665 strb.Append(" <x:ProtectStructure>False</x:ProtectStructure>");
1666 strb.Append(" <x:ProtectWindows>False</x:ProtectWindows>");
1667 strb.Append(" </x:ExcelWorkbook>");
1668 strb.Append(" </xml>");
1669 strb.Append("");
1670 strb.Append(" </head> <body> <table align=\"center\" style='border-collapse:collapse;table-layout:fixed'>");
1671 if (dt.Rows.Count > 0)
1672 {
1673 strb.Append("<tr>");
1674 //写列标题
1675 int columncount = dt.Columns.Count;
1676 for (int columi = 0; columi < columncount; columi++)
1677 {
1678 strb.Append(" <td style='text-align:center;'><b>" + ColumnName(dt.Columns[columi].ToString()) + "</b></td>");
1679 }
1680 strb.Append(" </tr>");
1681 //写数据
1682 for (int i = 0; i < dt.Rows.Count; i++)
1683 {
1684 strb.Append(" <tr>");
1685
1686 for (int j = 0; j < dt.Columns.Count; j++)
1687 {
1688 strb.Append(" <td class='xl26'>" + dt.Rows[i][j].ToString() + "</td>");
1689 }
1690 strb.Append(" </tr>");
1691 }
1692 }
1693 strb.Append("</table> </body> </html>");
1694 HttpContext.Current.Response.Clear();
1695 HttpContext.Current.Response.Buffer = true;
1696 HttpContext.Current.Response.Charset = "utf-8";
1697 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
1698 HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;//
1699 HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
1700 //HttpContext.Current.p.EnableViewState = false;
1701 HttpContext.Current.Response.Write(strb);
1702 HttpContext.Current.Response.End();
1703 }
1704 #endregion
1705
1706 #region 列的命名
1707 private static string ColumnName(string column)
1708 {
1709 switch (column)
1710 {
1711 case "area":
1712 return "地区";
1713 case "tongxun":
1714 return "通讯费";
1715 case "jietong":
1716 return "接通";
1717 case "weijietong":
1718 return "未接通";
1719 case "youxiao":
1720 return "有效电话";
1721 case "shangji":
1722 return "消耗商机费";
1723 case "zongji":
1724 return "总机费";
1725 case "account":
1726 return "帐号";
1727 case "extensionnum":
1728 return "分机";
1729 case "accountname":
1730 return "商户名称";
1731 case "transfernum":
1732 return "转接号码";
1733 case "calledcalltime":
1734 return "通话时长(秒)";
1735 case "callerstarttime":
1736 return "通话时间";
1737 case "caller":
1738 return "主叫号码";
1739 case "callerlocation":
1740 return "归属地";
1741 case "callresult":
1742 return "结果";
1743 case "Opportunitycosts":
1744 return "商机费";
1745 case "memberfee":
1746 return "通讯费";
1747 case "licenid":
1748 return "客服编号";
1749 case "servicename":
1750 return "客服名称";
1751 case "serviceaccount":
1752 return "客服帐号";
1753 case "messageconsume":
1754 return "短信消耗";
1755 case "receivingrate":
1756 return "接听率";
1757 case "youxiaop":
1758 return "有效接听率";
1759 case "telamount":
1760 return "电话量";
1761 case "extennum":
1762 return "拨打分机个数";
1763 case "telconnum":
1764 return "继续拨打分机次数";
1765 case "listenarea":
1766 return "接听区域";
1767 case "specialfield":
1768 return "专业领域";
1769 case "calltime":
1770 return "接听时间";
1771 case "userstart":
1772 return "当前状态";
1773 case "currentbalance":
1774 return "当前余额";
1775 case "call400all":
1776 return "400电话总量";
1777 case "call400youxiao":
1778 return "400有效电话量";
1779 case "call400consume":
1780 return "400消耗额";
1781 case "call400avgopp":
1782 return "400平均商机费";
1783 case "call800all":
1784 return "800电话总量";
1785 case "call800youxiao":
1786 return "800有效电话量";
1787 case "call800consume":
1788 return "800消耗额";
1789 case "call800avgopp":
1790 return "800平均商机费";
1791 case "callall":
1792 return "电话总量";
1793 case "callyouxiao":
1794 return "总有效电话量";
1795 case "callconsume":
1796 return "总消耗额";
1797 case "callavgoppo":
1798 return "总平均商机费";
1799 case "hr":
1800 return "小时";
1801 case "shangji400":
1802 return "400商机费";
1803 case "shangji800":
1804 return "800商机费";
1805 case "tongxun400":
1806 return "400通讯费";
1807 case "tongxun800":
1808 return "800通讯费";
1809 case "zongji400":
1810 return "400总机费";
1811 case "zongji800":
1812 return "800总机费";
1813 case "datet":
1814 return "日期";
1815 case "opentime":
1816 return "开通时间";
1817 case "allrecharge":
1818 return "充值金额";
1819 case "Userstart":
1820 return "状态";
1821 case "allnum":
1822 return "总接听量";
1823 case "cbalance":
1824 return "合作金额";
1825 case "allmoney":
1826 return "续费额";
1827 case "username":
1828 return "商户账号";
1829 case "isguoqi":
1830 return "是否过期";
1831 case "accounttype":
1832 return "商户类型";
1833 case "mphone":
1834 return "客户手机号";
1835 case "specialText":
1836 return "专长";
1837 case "uuname":
1838 return "客服";
1839 case "opentimes":
1840 return "合作时间";
1841 case "shangjifei":
1842 return "商机费";
1843
1844 }
1845 return "";
1846 }
1847 #endregion
1848
1849 #region 构造URL POST请求
1850 public static int timeout = 5000;//时间点
1851 /// <summary>
1852 /// 获取请求的反馈信息
1853 /// </summary>
1854 /// <param name="url"></param>
1855 /// <param name="bData">参数字节数组</param>
1856 /// <returns></returns>
1857 private static String doPostRequest(string url, byte[] bData)
1858 {
1859 HttpWebRequest hwRequest;
1860 HttpWebResponse hwResponse;
1861
1862 string strResult = string.Empty;
1863 try
1864 {
1865 ServicePointManager.Expect100Continue = false;//远程服务器返回错误: (417) Expectation failed 异常源自HTTP1.1协议的一个规范: 100(Continue)
1866 hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
1867 hwRequest.Timeout = timeout;
1868 hwRequest.Method = "POST";
1869 hwRequest.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
1870 hwRequest.ContentLength = bData.Length;
1871 Stream smWrite = hwRequest.GetRequestStream();
1872 smWrite.Write(bData, 0, bData.Length);
1873 smWrite.Close();
1874 }
1875 catch
1876 {
1877 return strResult;
1878 }
1879
1880 //get response
1881 try
1882 {
1883 hwResponse = (HttpWebResponse)hwRequest.GetResponse();
1884 StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.UTF8);
1885 strResult = srReader.ReadToEnd();
1886 srReader.Close();
1887 hwResponse.Close();
1888 }
1889 catch
1890 {
1891 return strResult;
1892 }
1893
1894 return strResult;
1895 }
1896 /// <summary>
1897 /// 构造WebClient提交
1898 /// </summary>
1899 /// <param name="url">提交地址</param>
1900 /// <param name="encoding">编码方式</param>
1901 /// <returns></returns>
1902 private static string doPostRequest(string url, string encoding)
1903 {
1904 try
1905 {
1906 WebClient WC = new WebClient();
1907 WC.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
1908 int p = url.IndexOf("?");
1909 string sData = url.Substring(p + 1);
1910 url = url.Substring(0, p);
1911 byte[] Data = Encoding.GetEncoding(encoding).GetBytes(sData);
1912 byte[] Res = WC.UploadData(url, "POST", Data);
1913 string result = Encoding.GetEncoding(encoding).GetString(Res);
1914 return result;
1915 }
1916 catch
1917 {
1918 return "";
1919 }
1920 }
1921 #endregion
1922
1923 #region 构造URL GET请求
1924 /// <summary>
1925 /// 获取请求的反馈信息
1926 /// </summary>
1927 /// <param name="url">地址</param>
1928 /// <returns></returns>
1929 public static string doGetRequest(string url)
1930 {
1931 HttpWebRequest hwRequest;
1932 HttpWebResponse hwResponse;
1933
1934 string strResult = string.Empty;
1935 try
1936 {
1937 hwRequest = (System.Net.HttpWebRequest)WebRequest.Create(url);
1938 hwRequest.Timeout = timeout;
1939 hwRequest.Method = "GET";
1940 hwRequest.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
1941 }
1942 catch
1943 {
1944 return strResult;
1945 }
1946
1947 //get response
1948 try
1949 {
1950 hwResponse = (HttpWebResponse)hwRequest.GetResponse();
1951 StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.UTF8);
1952 strResult = srReader.ReadToEnd();
1953 srReader.Close();
1954 hwResponse.Close();
1955 }
1956 catch
1957 {
1958 return strResult;
1959 }
1960
1961 return strResult;
1962 }
1963 #endregion
1964
1965 #region POST请求
1966 public static string PostMethod(string url, string param)
1967 {
1968 byte[] data = Encoding.UTF8.GetBytes(param);
1969 return doPostRequest(url, data);
1970 }
1971 /// <summary>
1972 /// POST请求
1973 /// </summary>
1974 /// <param name="url">URL</param>
1975 /// <param name="encoding">编码gb2312/utf8</param>
1976 /// <param name="param">参数</param>
1977 /// <returns>结果</returns>
1978 public static string PostMethod(string url, string encoding, string param)
1979 {
1980 HttpWebRequest hwRequest;
1981 HttpWebResponse hwResponse;
1982
1983 string strResult = string.Empty;
1984 byte[] bData = null;
1985 if (string.IsNullOrEmpty(param))
1986 {
1987 int p = url.IndexOf("?");
1988 string sData = "";
1989 if (p > 0)
1990 {
1991 sData = url.Substring(p + 1);
1992 url = url.Substring(0, p);
1993 }
1994 bData = Encoding.GetEncoding(encoding).GetBytes(sData);
1995
1996 }
1997 else
1998 {
1999 bData = Encoding.GetEncoding(encoding).GetBytes(param);
2000 }
2001 try
2002 {
2003 ServicePointManager.Expect100Continue = false;//远程服务器返回错误: (417) Expectation failed 异常源自HTTP1.1协议的一个规范: 100(Continue)
2004 hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
2005 hwRequest.Timeout = timeout;
2006 hwRequest.Method = "POST";
2007 hwRequest.ContentType = "application/x-www-form-urlencoded";
2008 hwRequest.ContentLength = bData.Length;
2009 Stream smWrite = hwRequest.GetRequestStream();
2010 smWrite.Write(bData, 0, bData.Length);
2011 smWrite.Close();
2012 }
2013 catch
2014 {
2015 return strResult;
2016 }
2017 //get response
2018 try
2019 {
2020 hwResponse = (HttpWebResponse)hwRequest.GetResponse();
2021 StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.GetEncoding(encoding));
2022 strResult = srReader.ReadToEnd();
2023 srReader.Close();
2024 hwResponse.Close();
2025 }
2026 catch
2027 {
2028 return strResult;
2029 }
2030
2031 return strResult;
2032 }
2033 #endregion
2034
2035 #region 访问提交创建文件 (供生成静态页面使用,无需模板)
2036 /// <summary>
2037 /// 访问提交创建文件 (供生成静态页面使用,无需模板)
2038 /// 调用实例 Utils.CreateFileHtml("http://www.xiaomi.com", Server.MapPath("/xxx.html"));
2039 /// </summary>
2040 /// <param name="url">原网址</param>
2041 /// <param name="createpath">生成路径</param>
2042 /// <returns>true false</returns>
2043 public static bool CreateFileHtml(string url, string createpath)
2044 {
2045 if (!string.IsNullOrEmpty(url))
2046 {
2047 string result = PostMethod(url, "");
2048 if (!string.IsNullOrEmpty(result))
2049 {
2050 if (string.IsNullOrEmpty(createpath))
2051 {
2052 createpath = "/default.html";
2053 }
2054 string filepath = createpath.Substring(createpath.LastIndexOf(@"\"));
2055 createpath = createpath.Substring(0, createpath.LastIndexOf(@"\"));
2056 if (!Directory.Exists(createpath))
2057 {
2058 Directory.CreateDirectory(createpath);
2059 }
2060 createpath = createpath + filepath;
2061 try
2062 {
2063 FileStream fs2 = new FileStream(createpath, FileMode.Create);
2064 StreamWriter sw = new StreamWriter(fs2, System.Text.Encoding.UTF8);
2065 sw.Write(result);
2066 sw.Close();
2067 fs2.Close();
2068 fs2.Dispose();
2069 return true;
2070 }
2071 catch { return false; }
2072 }
2073 return false;
2074 }
2075 return false;
2076 }
2077 /// <summary>
2078 /// 访问提交创建文件 (供生成静态页面使用,需要模板)
2079 /// 调用实例 Utils.CreateFileHtmlByTemp(html, Server.MapPath("/xxx.html"));
2080 /// </summary>
2081 /// <param name="url">原网址</param>
2082 /// <param name="createpath">生成路径</param>
2083 /// <returns>true false</returns>
2084 public static bool CreateFileHtmlByTemp(string result, string createpath)
2085 {
2086 if (!string.IsNullOrEmpty(result))
2087 {
2088 if (string.IsNullOrEmpty(createpath))
2089 {
2090 createpath = "/default.html";
2091 }
2092 string filepath = createpath.Substring(createpath.LastIndexOf(@"\"));
2093 createpath = createpath.Substring(0, createpath.LastIndexOf(@"\"));
2094 if (!Directory.Exists(createpath))
2095 {
2096 Directory.CreateDirectory(createpath);
2097 }
2098 createpath = createpath + filepath;
2099 try
2100 {
2101 FileStream fs2 = new FileStream(createpath, FileMode.Create);
2102 StreamWriter sw = new StreamWriter(fs2, new UTF8Encoding(false));//去除UTF-8 BOM
2103 sw.Write(result);
2104 sw.Close();
2105 fs2.Close();
2106 fs2.Dispose();
2107 return true;
2108 }
2109 catch { return false; }
2110 }
2111 return false;
2112 }
2113 #endregion
2114
2115 #region 汉字转拼音
2116
2117 #region 数组信息
2118 private static int[] pyValue = new int[]
2119
2120 {
2121 -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242,
2122
2123 -20230, -20051, -20036, -20032, -20026, -20002, -19990, -19986, -19982,
2124
2125 -19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746,
2126
2127 -19741, -19739, -19728, -19725, -19715, -19540, -19531, -19525, -19515,
2128
2129 -19500, -19484, -19479, -19467, -19289, -19288, -19281, -19275, -19270,
2130
2131 -19263, -19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224,
2132
2133 -19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996, -18977,
2134
2135 -18961, -18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735,
2136
2137 -18731, -18722, -18710, -18697, -18696, -18526, -18518, -18501, -18490,
2138
2139 -18478, -18463, -18448, -18447, -18446, -18239, -18237, -18231, -18220,
2140
2141 -18211, -18201, -18184, -18183, -18181, -18012, -17997, -17988, -17970,
2142
2143 -17964, -17961, -17950, -17947, -17931, -17928, -17922, -17759, -17752,
2144
2145 -17733, -17730, -17721, -17703, -17701, -17697, -17692, -17683, -17676,
2146
2147 -17496, -17487, -17482, -17468, -17454, -17433, -17427, -17417, -17202,
2148
2149 -17185, -16983, -16970, -16942, -16915, -16733, -16708, -16706, -16689,
2150
2151 -16664, -16657, -16647, -16474, -16470, -16465, -16459, -16452, -16448,
2152
2153 -16433, -16429, -16427, -16423, -16419, -16412, -16407, -16403, -16401,
2154
2155 -16393, -16220, -16216, -16212, -16205, -16202, -16187, -16180, -16171,
2156
2157 -16169, -16158, -16155, -15959, -15958, -15944, -15933, -15920, -15915,
2158
2159 -15903, -15889, -15878, -15707, -15701, -15681, -15667, -15661, -15659,
2160
2161 -15652, -15640, -15631, -15625, -15454, -15448, -15436, -15435, -15419,
2162
2163 -15416, -15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362,
2164
2165 -15183, -15180, -15165, -15158, -15153, -15150, -15149, -15144, -15143,
2166
2167 -15141, -15140, -15139, -15128, -15121, -15119, -15117, -15110, -15109,
2168
2169 -14941, -14937, -14933, -14930, -14929, -14928, -14926, -14922, -14921,
2170
2171 -14914, -14908, -14902, -14894, -14889, -14882, -14873, -14871, -14857,
2172
2173 -14678, -14674, -14670, -14668, -14663, -14654, -14645, -14630, -14594,
2174
2175 -14429, -14407, -14399, -14384, -14379, -14368, -14355, -14353, -14345,
2176
2177 -14170, -14159, -14151, -14149, -14145, -14140, -14137, -14135, -14125,
2178
2179 -14123, -14122, -14112, -14109, -14099, -14097, -14094, -14092, -14090,
2180
2181 -14087, -14083, -13917, -13914, -13910, -13907, -13906, -13905, -13896,
2182
2183 -13894, -13878, -13870, -13859, -13847, -13831, -13658, -13611, -13601,
2184
2185 -13406, -13404, -13400, -13398, -13395, -13391, -13387, -13383, -13367,
2186
2187 -13359, -13356, -13343, -13340, -13329, -13326, -13318, -13147, -13138,
2188
2189 -13120, -13107, -13096, -13095, -13091, -13076, -13068, -13063, -13060,
2190
2191 -12888, -12875, -12871, -12860, -12858, -12852, -12849, -12838, -12831,
2192
2193 -12829, -12812, -12802, -12607, -12597, -12594, -12585, -12556, -12359,
2194
2195 -12346, -12320, -12300, -12120, -12099, -12089, -12074, -12067, -12058,
2196
2197 -12039, -11867, -11861, -11847, -11831, -11798, -11781, -11604, -11589,
2198
2199 -11536, -11358, -11340, -11339, -11324, -11303, -11097, -11077, -11067,
2200
2201 -11055, -11052, -11045, -11041, -11038, -11024, -11020, -11019, -11018,
2202
2203 -11014, -10838, -10832, -10815, -10800, -10790, -10780, -10764, -10587,
2204
2205 -10544, -10533, -10519, -10331, -10329, -10328, -10322, -10315, -10309,
2206
2207 -10307, -10296, -10281, -10274, -10270, -10262, -10260, -10256, -10254
2208
2209 };
2210
2211 private static string[] pyName = new string[]
2212
2213 {
2214 "A", "Ai", "An", "Ang", "Ao", "Ba", "Bai", "Ban", "Bang", "Bao", "Bei",
2215
2216 "Ben", "Beng", "Bi", "Bian", "Biao", "Bie", "Bin", "Bing", "Bo", "Bu",
2217
2218 "Ba", "Cai", "Can", "Cang", "Cao", "Ce", "Ceng", "Cha", "Chai", "Chan",
2219
2220 "Chang", "Chao", "Che", "Chen", "Cheng", "Chi", "Chong", "Chou", "Chu",
2221
2222 "Chuai", "Chuan", "Chuang", "Chui", "Chun", "Chuo", "Ci", "Cong", "Cou",
2223
2224 "Cu", "Cuan", "Cui", "Cun", "Cuo", "Da", "Dai", "Dan", "Dang", "Dao", "De",
2225
2226 "Deng", "Di", "Dian", "Diao", "Die", "Ding", "Diu", "Dong", "Dou", "Du",
2227
2228 "Duan", "Dui", "Dun", "Duo", "E", "En", "Er", "Fa", "Fan", "Fang", "Fei",
2229
2230 "Fen", "Feng", "Fo", "Fou", "Fu", "Ga", "Gai", "Gan", "Gang", "Gao", "Ge",
2231
2232 "Gei", "Gen", "Geng", "Gong", "Gou", "Gu", "Gua", "Guai", "Guan", "Guang",
2233
2234 "Gui", "Gun", "Guo", "Ha", "Hai", "Han", "Hang", "Hao", "He", "Hei", "Hen",
2235
2236 "Heng", "Hong", "Hou", "Hu", "Hua", "Huai", "Huan", "Huang", "Hui", "Hun",
2237
2238 "Huo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jie", "Jin", "Jing", "Jiong",
2239
2240 "Jiu", "Ju", "Juan", "Jue", "Jun", "Ka", "Kai", "Kan", "Kang", "Kao", "Ke",
2241
2242 "Ken", "Keng", "Kong", "Kou", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kui",
2243
2244 "Kun", "Kuo", "La", "Lai", "Lan", "Lang", "Lao", "Le", "Lei", "Leng", "Li",
2245
2246 "Lia", "Lian", "Liang", "Liao", "Lie", "Lin", "Ling", "Liu", "Long", "Lou",
2247
2248 "Lu", "Lv", "Luan", "Lue", "Lun", "Luo", "Ma", "Mai", "Man", "Mang", "Mao",
2249
2250 "Me", "Mei", "Men", "Meng", "Mi", "Mian", "Miao", "Mie", "Min", "Ming", "Miu",
2251
2252 "Mo", "Mou", "Mu", "Na", "Nai", "Nan", "Nang", "Nao", "Ne", "Nei", "Nen",
2253
2254 "Neng", "Ni", "Nian", "Niang", "Niao", "Nie", "Nin", "Ning", "Niu", "Nong",
2255
2256 "Nu", "Nv", "Nuan", "Nue", "Nuo", "O", "Ou", "Pa", "Pai", "Pan", "Pang",
2257
2258 "Pao", "Pei", "Pen", "Peng", "Pi", "Pian", "Piao", "Pie", "Pin", "Ping",
2259
2260 "Po", "Pu", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qie", "Qin", "Qing",
2261
2262 "Qiong", "Qiu", "Qu", "Quan", "Que", "Qun", "Ran", "Rang", "Rao", "Re",
2263
2264 "Ren", "Reng", "Ri", "Rong", "Rou", "Ru", "Ruan", "Rui", "Run", "Ruo",
2265
2266 "Sa", "Sai", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Sha", "Shai",
2267
2268 "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Shi", "Shou", "Shu",
2269
2270 "Shua", "Shuai", "Shuan", "Shuang", "Shui", "Shun", "Shuo", "Si", "Song",
2271
2272 "Sou", "Su", "Suan", "Sui", "Sun", "Suo", "Ta", "Tai", "Tan", "Tang",
2273
2274 "Tao", "Te", "Teng", "Ti", "Tian", "Tiao", "Tie", "Ting", "Tong", "Tou",
2275
2276 "Tu", "Tuan", "Tui", "Tun", "Tuo", "Wa", "Wai", "Wan", "Wang", "Wei",
2277
2278 "Wen", "Weng", "Wo", "Wu", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xie",
2279
2280 "Xin", "Xing", "Xiong", "Xiu", "Xu", "Xuan", "Xue", "Xun", "Ya", "Yan",
2281
2282 "Yang", "Yao", "Ye", "Yi", "Yin", "Ying", "Yo", "Yong", "You", "Yu",
2283
2284 "Yuan", "Yue", "Yun", "Za", "Zai", "Zan", "Zang", "Zao", "Ze", "Zei",
2285
2286 "Zen", "Zeng", "Zha", "Zhai", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen",
2287
2288 "Zheng", "Zhi", "Zhong", "Zhou", "Zhu", "Zhua", "Zhuai", "Zhuan",
2289
2290 "Zhuang", "Zhui", "Zhun", "Zhuo", "Zi", "Zong", "Zou", "Zu", "Zuan",
2291
2292 "Zui", "Zun", "Zuo"
2293 };
2294
2295 #region 二级汉字
2296 /// <summary>
2297 /// 二级汉字数组
2298 /// </summary>
2299 private static string[] otherChinese = new string[]
2300 {
2301 "亍","丌","兀","丐","廿","卅","丕","亘","丞","鬲","孬","噩","丨","禺","丿"
2302 ,"匕","乇","夭","爻","卮","氐","囟","胤","馗","毓","睾","鼗","丶","亟","鼐","乜"
2303 ,"乩","亓","芈","孛","啬","嘏","仄","厍","厝","厣","厥","厮","靥","赝","匚","叵"
2304 ,"匦","匮","匾","赜","卦","卣","刂","刈","刎","刭","刳","刿","剀","剌","剞","剡"
2305 ,"剜","蒯","剽","劂","劁","劐","劓","冂","罔","亻","仃","仉","仂","仨","仡","仫"
2306 ,"仞","伛","仳","伢","佤","仵","伥","伧","伉","伫","佞","佧","攸","佚","佝"
2307 ,"佟","佗","伲","伽","佶","佴","侑","侉","侃","侏","佾","佻","侪","佼","侬"
2308 ,"侔","俦","俨","俪","俅","俚","俣","俜","俑","俟","俸","倩","偌","俳","倬","倏"
2309 ,"倮","倭","俾","倜","倌","倥","倨","偾","偃","偕","偈","偎","偬","偻","傥","傧"
2310 ,"傩","傺","僖","儆","僭","僬","僦","僮","儇","儋","仝","氽","佘","佥","俎","龠"
2311 ,"汆","籴","兮","巽","黉","馘","冁","夔","勹","匍","訇","匐","凫","夙","兕","亠"
2312 ,"兖","亳","衮","袤","亵","脔","裒","禀","嬴","蠃","羸","冫","冱","冽","冼"
2313 ,"凇","冖","冢","冥","讠","讦","讧","讪","讴","讵","讷","诂","诃","诋","诏"
2314 ,"诎","诒","诓","诔","诖","诘","诙","诜","诟","诠","诤","诨","诩","诮","诰","诳"
2315 ,"诶","诹","诼","诿","谀","谂","谄","谇","谌","谏","谑","谒","谔","谕","谖","谙"
2316 ,"谛","谘","谝","谟","谠","谡","谥","谧","谪","谫","谮","谯","谲","谳","谵","谶"
2317 ,"卩","卺","阝","阢","阡","阱","阪","阽","阼","陂","陉","陔","陟","陧","陬","陲"
2318 ,"陴","隈","隍","隗","隰","邗","邛","邝","邙","邬","邡","邴","邳","邶","邺"
2319 ,"邸","邰","郏","郅","邾","郐","郄","郇","郓","郦","郢","郜","郗","郛","郫"
2320 ,"郯","郾","鄄","鄢","鄞","鄣","鄱","鄯","鄹","酃","酆","刍","奂","劢","劬","劭"
2321 ,"劾","哿","勐","勖","勰","叟","燮","矍","廴","凵","凼","鬯","厶","弁","畚","巯"
2322 ,"坌","垩","垡","塾","墼","壅","壑","圩","圬","圪","圳","圹","圮","圯","坜","圻"
2323 ,"坂","坩","垅","坫","垆","坼","坻","坨","坭","坶","坳","垭","垤","垌","垲","埏"
2324 ,"垧","垴","垓","垠","埕","埘","埚","埙","埒","垸","埴","埯","埸","埤","埝"
2325 ,"堋","堍","埽","埭","堀","堞","堙","塄","堠","塥","塬","墁","墉","墚","墀"
2326 ,"馨","鼙","懿","艹","艽","艿","芏","芊","芨","芄","芎","芑","芗","芙","芫","芸"
2327 ,"芾","芰","苈","苊","苣","芘","芷","芮","苋","苌","苁","芩","芴","芡","芪","芟"
2328 ,"苄","苎","芤","苡","茉","苷","苤","茏","茇","苜","苴","苒","苘","茌","苻","苓"
2329 ,"茑","茚","茆","茔","茕","苠","苕","茜","荑","荛","荜","茈","莒","茼","茴","茱"
2330 ,"莛","荞","茯","荏","荇","荃","荟","荀","茗","荠","茭","茺","茳","荦","荥"
2331 ,"荨","茛","荩","荬","荪","荭","荮","莰","荸","莳","莴","莠","莪","莓","莜"
2332 ,"莅","荼","莶","莩","荽","莸","荻","莘","莞","莨","莺","莼","菁","萁","菥","菘"
2333 ,"堇","萘","萋","菝","菽","菖","萜","萸","萑","萆","菔","菟","萏","萃","菸","菹"
2334 ,"菪","菅","菀","萦","菰","菡","葜","葑","葚","葙","葳","蒇","蒈","葺","蒉","葸"
2335 ,"萼","葆","葩","葶","蒌","蒎","萱","葭","蓁","蓍","蓐","蓦","蒽","蓓","蓊","蒿"
2336 ,"蒺","蓠","蒡","蒹","蒴","蒗","蓥","蓣","蔌","甍","蔸","蓰","蔹","蔟","蔺"
2337 ,"蕖","蔻","蓿","蓼","蕙","蕈","蕨","蕤","蕞","蕺","瞢","蕃","蕲","蕻","薤"
2338 ,"薨","薇","薏","蕹","薮","薜","薅","薹","薷","薰","藓","藁","藜","藿","蘧","蘅"
2339 ,"蘩","蘖","蘼","廾","弈","夼","奁","耷","奕","奚","奘","匏","尢","尥","尬","尴"
2340 ,"扌","扪","抟","抻","拊","拚","拗","拮","挢","拶","挹","捋","捃","掭","揶","捱"
2341 ,"捺","掎","掴","捭","掬","掊","捩","掮","掼","揲","揸","揠","揿","揄","揞","揎"
2342 ,"摒","揆","掾","摅","摁","搋","搛","搠","搌","搦","搡","摞","撄","摭","撖"
2343 ,"摺","撷","撸","撙","撺","擀","擐","擗","擤","擢","攉","攥","攮","弋","忒"
2344 ,"甙","弑","卟","叱","叽","叩","叨","叻","吒","吖","吆","呋","呒","呓","呔","呖"
2345 ,"呃","吡","呗","呙","吣","吲","咂","咔","呷","呱","呤","咚","咛","咄","呶","呦"
2346 ,"咝","哐","咭","哂","咴","哒","咧","咦","哓","哔","呲","咣","哕","咻","咿","哌"
2347 ,"哙","哚","哜","咩","咪","咤","哝","哏","哞","唛","哧","唠","哽","唔","哳","唢"
2348 ,"唣","唏","唑","唧","唪","啧","喏","喵","啉","啭","啁","啕","唿","啐","唼"
2349 ,"唷","啖","啵","啶","啷","唳","唰","啜","喋","嗒","喃","喱","喹","喈","喁"
2350 ,"喟","啾","嗖","喑","啻","嗟","喽","喾","喔","喙","嗪","嗷","嗉","嘟","嗑","嗫"
2351 ,"嗬","嗔","嗦","嗝","嗄","嗯","嗥","嗲","嗳","嗌","嗍","嗨","嗵","嗤","辔","嘞"
2352 ,"嘈","嘌","嘁","嘤","嘣","嗾","嘀","嘧","嘭","噘","嘹","噗","嘬","噍","噢","噙"
2353 ,"噜","噌","噔","嚆","噤","噱","噫","噻","噼","嚅","嚓","嚯","囔","囗","囝","囡"
2354 ,"囵","囫","囹","囿","圄","圊","圉","圜","帏","帙","帔","帑","帱","帻","帼"
2355 ,"帷","幄","幔","幛","幞","幡","岌","屺","岍","岐","岖","岈","岘","岙","岑"
2356 ,"岚","岜","岵","岢","岽","岬","岫","岱","岣","峁","岷","峄","峒","峤","峋","峥"
2357 ,"崂","崃","崧","崦","崮","崤","崞","崆","崛","嵘","崾","崴","崽","嵬","嵛","嵯"
2358 ,"嵝","嵫","嵋","嵊","嵩","嵴","嶂","嶙","嶝","豳","嶷","巅","彳","彷","徂","徇"
2359 ,"徉","後","徕","徙","徜","徨","徭","徵","徼","衢","彡","犭","犰","犴","犷","犸"
2360 ,"狃","狁","狎","狍","狒","狨","狯","狩","狲","狴","狷","猁","狳","猃","狺"
2361 ,"狻","猗","猓","猡","猊","猞","猝","猕","猢","猹","猥","猬","猸","猱","獐"
2362 ,"獍","獗","獠","獬","獯","獾","舛","夥","飧","夤","夂","饣","饧","饨","饩","饪"
2363 ,"饫","饬","饴","饷","饽","馀","馄","馇","馊","馍","馐","馑","馓","馔","馕","庀"
2364 ,"庑","庋","庖","庥","庠","庹","庵","庾","庳","赓","廒","廑","廛","廨","廪","膺"
2365 ,"忄","忉","忖","忏","怃","忮","怄","忡","忤","忾","怅","怆","忪","忭","忸","怙"
2366 ,"怵","怦","怛","怏","怍","怩","怫","怊","怿","怡","恸","恹","恻","恺","恂"
2367 ,"恪","恽","悖","悚","悭","悝","悃","悒","悌","悛","惬","悻","悱","惝","惘"
2368 ,"惆","惚","悴","愠","愦","愕","愣","惴","愀","愎","愫","慊","慵","憬","憔","憧"
2369 ,"憷","懔","懵","忝","隳","闩","闫","闱","闳","闵","闶","闼","闾","阃","阄","阆"
2370 ,"阈","阊","阋","阌","阍","阏","阒","阕","阖","阗","阙","阚","丬","爿","戕","氵"
2371 ,"汔","汜","汊","沣","沅","沐","沔","沌","汨","汩","汴","汶","沆","沩","泐","泔"
2372 ,"沭","泷","泸","泱","泗","沲","泠","泖","泺","泫","泮","沱","泓","泯","泾"
2373 ,"洹","洧","洌","浃","浈","洇","洄","洙","洎","洫","浍","洮","洵","洚","浏"
2374 ,"浒","浔","洳","涑","浯","涞","涠","浞","涓","涔","浜","浠","浼","浣","渚","淇"
2375 ,"淅","淞","渎","涿","淠","渑","淦","淝","淙","渖","涫","渌","涮","渫","湮","湎"
2376 ,"湫","溲","湟","溆","湓","湔","渲","渥","湄","滟","溱","溘","滠","漭","滢","溥"
2377 ,"溧","溽","溻","溷","滗","溴","滏","溏","滂","溟","潢","潆","潇","漤","漕","滹"
2378 ,"漯","漶","潋","潴","漪","漉","漩","澉","澍","澌","潸","潲","潼","潺","濑"
2379 ,"濉","澧","澹","澶","濂","濡","濮","濞","濠","濯","瀚","瀣","瀛","瀹","瀵"
2380 ,"灏","灞","宀","宄","宕","宓","宥","宸","甯","骞","搴","寤","寮","褰","寰","蹇"
2381 ,"謇","辶","迓","迕","迥","迮","迤","迩","迦","迳","迨","逅","逄","逋","逦","逑"
2382 ,"逍","逖","逡","逵","逶","逭","逯","遄","遑","遒","遐","遨","遘","遢","遛","暹"
2383 ,"遴","遽","邂","邈","邃","邋","彐","彗","彖","彘","尻","咫","屐","屙","孱","屣"
2384 ,"屦","羼","弪","弩","弭","艴","弼","鬻","屮","妁","妃","妍","妩","妪","妣"
2385 ,"妗","姊","妫","妞","妤","姒","妲","妯","姗","妾","娅","娆","姝","娈","姣"
2386 ,"姘","姹","娌","娉","娲","娴","娑","娣","娓","婀","婧","婊","婕","娼","婢","婵"
2387 ,"胬","媪","媛","婷","婺","媾","嫫","媲","嫒","嫔","媸","嫠","嫣","嫱","嫖","嫦"
2388 ,"嫘","嫜","嬉","嬗","嬖","嬲","嬷","孀","尕","尜","孚","孥","孳","孑","孓","孢"
2389 ,"驵","驷","驸","驺","驿","驽","骀","骁","骅","骈","骊","骐","骒","骓","骖","骘"
2390 ,"骛","骜","骝","骟","骠","骢","骣","骥","骧","纟","纡","纣","纥","纨","纩"
2391 ,"纭","纰","纾","绀","绁","绂","绉","绋","绌","绐","绔","绗","绛","绠","绡"
2392 ,"绨","绫","绮","绯","绱","绲","缍","绶","绺","绻","绾","缁","缂","缃","缇","缈"
2393 ,"缋","缌","缏","缑","缒","缗","缙","缜","缛","缟","缡","缢","缣","缤","缥","缦"
2394 ,"缧","缪","缫","缬","缭","缯","缰","缱","缲","缳","缵","幺","畿","巛","甾","邕"
2395 ,"玎","玑","玮","玢","玟","珏","珂","珑","玷","玳","珀","珉","珈","珥","珙","顼"
2396 ,"琊","珩","珧","珞","玺","珲","琏","琪","瑛","琦","琥","琨","琰","琮","琬"
2397 ,"琛","琚","瑁","瑜","瑗","瑕","瑙","瑷","瑭","瑾","璜","璎","璀","璁","璇"
2398 ,"璋","璞","璨","璩","璐","璧","瓒","璺","韪","韫","韬","杌","杓","杞","杈","杩"
2399 ,"枥","枇","杪","杳","枘","枧","杵","枨","枞","枭","枋","杷","杼","柰","栉","柘"
2400 ,"栊","柩","枰","栌","柙","枵","柚","枳","柝","栀","柃","枸","柢","栎","柁","柽"
2401 ,"栲","栳","桠","桡","桎","桢","桄","桤","梃","栝","桕","桦","桁","桧","桀","栾"
2402 ,"桊","桉","栩","梵","梏","桴","桷","梓","桫","棂","楮","棼","椟","椠","棹"
2403 ,"椤","棰","椋","椁","楗","棣","椐","楱","椹","楠","楂","楝","榄","楫","榀"
2404 ,"榘","楸","椴","槌","榇","榈","槎","榉","楦","楣","楹","榛","榧","榻","榫","榭"
2405 ,"槔","榱","槁","槊","槟","榕","槠","榍","槿","樯","槭","樗","樘","橥","槲","橄"
2406 ,"樾","檠","橐","橛","樵","檎","橹","樽","樨","橘","橼","檑","檐","檩","檗","檫"
2407 ,"猷","獒","殁","殂","殇","殄","殒","殓","殍","殚","殛","殡","殪","轫","轭","轱"
2408 ,"轲","轳","轵","轶","轸","轷","轹","轺","轼","轾","辁","辂","辄","辇","辋"
2409 ,"辍","辎","辏","辘","辚","軎","戋","戗","戛","戟","戢","戡","戥","戤","戬"
2410 ,"臧","瓯","瓴","瓿","甏","甑","甓","攴","旮","旯","旰","昊","昙","杲","昃","昕"
2411 ,"昀","炅","曷","昝","昴","昱","昶","昵","耆","晟","晔","晁","晏","晖","晡","晗"
2412 ,"晷","暄","暌","暧","暝","暾","曛","曜","曦","曩","贲","贳","贶","贻","贽","赀"
2413 ,"赅","赆","赈","赉","赇","赍","赕","赙","觇","觊","觋","觌","觎","觏","觐","觑"
2414 ,"牮","犟","牝","牦","牯","牾","牿","犄","犋","犍","犏","犒","挈","挲","掰"
2415 ,"搿","擘","耄","毪","毳","毽","毵","毹","氅","氇","氆","氍","氕","氘","氙"
2416 ,"氚","氡","氩","氤","氪","氲","攵","敕","敫","牍","牒","牖","爰","虢","刖","肟"
2417 ,"肜","肓","肼","朊","肽","肱","肫","肭","肴","肷","胧","胨","胩","胪","胛","胂"
2418 ,"胄","胙","胍","胗","朐","胝","胫","胱","胴","胭","脍","脎","胲","胼","朕","脒"
2419 ,"豚","脶","脞","脬","脘","脲","腈","腌","腓","腴","腙","腚","腱","腠","腩","腼"
2420 ,"腽","腭","腧","塍","媵","膈","膂","膑","滕","膣","膪","臌","朦","臊","膻"
2421 ,"臁","膦","欤","欷","欹","歃","歆","歙","飑","飒","飓","飕","飙","飚","殳"
2422 ,"彀","毂","觳","斐","齑","斓","於","旆","旄","旃","旌","旎","旒","旖","炀","炜"
2423 ,"炖","炝","炻","烀","炷","炫","炱","烨","烊","焐","焓","焖","焯","焱","煳","煜"
2424 ,"煨","煅","煲","煊","煸","煺","熘","熳","熵","熨","熠","燠","燔","燧","燹","爝"
2425 ,"爨","灬","焘","煦","熹","戾","戽","扃","扈","扉","礻","祀","祆","祉","祛","祜"
2426 ,"祓","祚","祢","祗","祠","祯","祧","祺","禅","禊","禚","禧","禳","忑","忐"
2427 ,"怼","恝","恚","恧","恁","恙","恣","悫","愆","愍","慝","憩","憝","懋","懑"
2428 ,"戆","肀","聿","沓","泶","淼","矶","矸","砀","砉","砗","砘","砑","斫","砭","砜"
2429 ,"砝","砹","砺","砻","砟","砼","砥","砬","砣","砩","硎","硭","硖","硗","砦","硐"
2430 ,"硇","硌","硪","碛","碓","碚","碇","碜","碡","碣","碲","碹","碥","磔","磙","磉"
2431 ,"磬","磲","礅","磴","礓","礤","礞","礴","龛","黹","黻","黼","盱","眄","眍","盹"
2432 ,"眇","眈","眚","眢","眙","眭","眦","眵","眸","睐","睑","睇","睃","睚","睨"
2433 ,"睢","睥","睿","瞍","睽","瞀","瞌","瞑","瞟","瞠","瞰","瞵","瞽","町","畀"
2434 ,"畎","畋","畈","畛","畲","畹","疃","罘","罡","罟","詈","罨","罴","罱","罹","羁"
2435 ,"罾","盍","盥","蠲","钅","钆","钇","钋","钊","钌","钍","钏","钐","钔","钗","钕"
2436 ,"钚","钛","钜","钣","钤","钫","钪","钭","钬","钯","钰","钲","钴","钶","钷","钸"
2437 ,"钹","钺","钼","钽","钿","铄","铈","铉","铊","铋","铌","铍","铎","铐","铑","铒"
2438 ,"铕","铖","铗","铙","铘","铛","铞","铟","铠","铢","铤","铥","铧","铨","铪"
2439 ,"铩","铫","铮","铯","铳","铴","铵","铷","铹","铼","铽","铿","锃","锂","锆"
2440 ,"锇","锉","锊","锍","锎","锏","锒","锓","锔","锕","锖","锘","锛","锝","锞","锟"
2441 ,"锢","锪","锫","锩","锬","锱","锲","锴","锶","锷","锸","锼","锾","锿","镂","锵"
2442 ,"镄","镅","镆","镉","镌","镎","镏","镒","镓","镔","镖","镗","镘","镙","镛","镞"
2443 ,"镟","镝","镡","镢","镤","镥","镦","镧","镨","镩","镪","镫","镬","镯","镱","镲"
2444 ,"镳","锺","矧","矬","雉","秕","秭","秣","秫","稆","嵇","稃","稂","稞","稔"
2445 ,"稹","稷","穑","黏","馥","穰","皈","皎","皓","皙","皤","瓞","瓠","甬","鸠"
2446 ,"鸢","鸨","鸩","鸪","鸫","鸬","鸲","鸱","鸶","鸸","鸷","鸹","鸺","鸾","鹁","鹂"
2447 ,"鹄","鹆","鹇","鹈","鹉","鹋","鹌","鹎","鹑","鹕","鹗","鹚","鹛","鹜","鹞","鹣"
2448 ,"鹦","鹧","鹨","鹩","鹪","鹫","鹬","鹱","鹭","鹳","疒","疔","疖","疠","疝","疬"
2449 ,"疣","疳","疴","疸","痄","疱","疰","痃","痂","痖","痍","痣","痨","痦","痤","痫"
2450 ,"痧","瘃","痱","痼","痿","瘐","瘀","瘅","瘌","瘗","瘊","瘥","瘘","瘕","瘙"
2451 ,"瘛","瘼","瘢","瘠","癀","瘭","瘰","瘿","瘵","癃","瘾","瘳","癍","癞","癔"
2452 ,"癜","癖","癫","癯","翊","竦","穸","穹","窀","窆","窈","窕","窦","窠","窬","窨"
2453 ,"窭","窳","衤","衩","衲","衽","衿","袂","袢","裆","袷","袼","裉","裢","裎","裣"
2454 ,"裥","裱","褚","裼","裨","裾","裰","褡","褙","褓","褛","褊","褴","褫","褶","襁"
2455 ,"襦","襻","疋","胥","皲","皴","矜","耒","耔","耖","耜","耠","耢","耥","耦","耧"
2456 ,"耩","耨","耱","耋","耵","聃","聆","聍","聒","聩","聱","覃","顸","颀","颃"
2457 ,"颉","颌","颍","颏","颔","颚","颛","颞","颟","颡","颢","颥","颦","虍","虔"
2458 ,"虬","虮","虿","虺","虼","虻","蚨","蚍","蚋","蚬","蚝","蚧","蚣","蚪","蚓","蚩"
2459 ,"蚶","蛄","蚵","蛎","蚰","蚺","蚱","蚯","蛉","蛏","蚴","蛩","蛱","蛲","蛭","蛳"
2460 ,"蛐","蜓","蛞","蛴","蛟","蛘","蛑","蜃","蜇","蛸","蜈","蜊","蜍","蜉","蜣","蜻"
2461 ,"蜞","蜥","蜮","蜚","蜾","蝈","蜴","蜱","蜩","蜷","蜿","螂","蜢","蝽","蝾","蝻"
2462 ,"蝠","蝰","蝌","蝮","螋","蝓","蝣","蝼","蝤","蝙","蝥","螓","螯","螨","蟒"
2463 ,"蟆","螈","螅","螭","螗","螃","螫","蟥","螬","螵","螳","蟋","蟓","螽","蟑"
2464 ,"蟀","蟊","蟛","蟪","蟠","蟮","蠖","蠓","蟾","蠊","蠛","蠡","蠹","蠼","缶","罂"
2465 ,"罄","罅","舐","竺","竽","笈","笃","笄","笕","笊","笫","笏","筇","笸","笪","笙"
2466 ,"笮","笱","笠","笥","笤","笳","笾","笞","筘","筚","筅","筵","筌","筝","筠","筮"
2467 ,"筻","筢","筲","筱","箐","箦","箧","箸","箬","箝","箨","箅","箪","箜","箢","箫"
2468 ,"箴","篑","篁","篌","篝","篚","篥","篦","篪","簌","篾","篼","簏","簖","簋"
2469 ,"簟","簪","簦","簸","籁","籀","臾","舁","舂","舄","臬","衄","舡","舢","舣"
2470 ,"舭","舯","舨","舫","舸","舻","舳","舴","舾","艄","艉","艋","艏","艚","艟","艨"
2471 ,"衾","袅","袈","裘","裟","襞","羝","羟","羧","羯","羰","羲","籼","敉","粑","粝"
2472 ,"粜","粞","粢","粲","粼","粽","糁","糇","糌","糍","糈","糅","糗","糨","艮","暨"
2473 ,"羿","翎","翕","翥","翡","翦","翩","翮","翳","糸","絷","綦","綮","繇","纛","麸"
2474 ,"麴","赳","趄","趔","趑","趱","赧","赭","豇","豉","酊","酐","酎","酏","酤"
2475 ,"酢","酡","酰","酩","酯","酽","酾","酲","酴","酹","醌","醅","醐","醍","醑"
2476 ,"醢","醣","醪","醭","醮","醯","醵","醴","醺","豕","鹾","趸","跫","踅","蹙","蹩"
2477 ,"趵","趿","趼","趺","跄","跖","跗","跚","跞","跎","跏","跛","跆","跬","跷","跸"
2478 ,"跣","跹","跻","跤","踉","跽","踔","踝","踟","踬","踮","踣","踯","踺","蹀","踹"
2479 ,"踵","踽","踱","蹉","蹁","蹂","蹑","蹒","蹊","蹰","蹶","蹼","蹯","蹴","躅","躏"
2480 ,"躔","躐","躜","躞","豸","貂","貊","貅","貘","貔","斛","觖","觞","觚","觜"
2481 ,"觥","觫","觯","訾","謦","靓","雩","雳","雯","霆","霁","霈","霏","霎","霪"
2482 ,"霭","霰","霾","龀","龃","龅","龆","龇","龈","龉","龊","龌","黾","鼋","鼍","隹"
2483 ,"隼","隽","雎","雒","瞿","雠","銎","銮","鋈","錾","鍪","鏊","鎏","鐾","鑫","鱿"
2484 ,"鲂","鲅","鲆","鲇","鲈","稣","鲋","鲎","鲐","鲑","鲒","鲔","鲕","鲚","鲛","鲞"
2485 ,"鲟","鲠","鲡","鲢","鲣","鲥","鲦","鲧","鲨","鲩","鲫","鲭","鲮","鲰","鲱","鲲"
2486 ,"鲳","鲴","鲵","鲶","鲷","鲺","鲻","鲼","鲽","鳄","鳅","鳆","鳇","鳊","鳋"
2487 ,"鳌","鳍","鳎","鳏","鳐","鳓","鳔","鳕","鳗","鳘","鳙","鳜","鳝","鳟","鳢"
2488 ,"靼","鞅","鞑","鞒","鞔","鞯","鞫","鞣","鞲","鞴","骱","骰","骷","鹘","骶","骺"
2489 ,"骼","髁","髀","髅","髂","髋","髌","髑","魅","魃","魇","魉","魈","魍","魑","飨"
2490 ,"餍","餮","饕","饔","髟","髡","髦","髯","髫","髻","髭","髹","鬈","鬏","鬓","鬟"
2491 ,"鬣","麽","麾","縻","麂","麇","麈","麋","麒","鏖","麝","麟","黛","黜","黝","黠"
2492 ,"黟","黢","黩","黧","黥","黪","黯","鼢","鼬","鼯","鼹","鼷","鼽","鼾","齄"
2493 };
2494
2495 /// <summary>
2496 /// 二级汉字对应拼音数组
2497 /// </summary>
2498 private static string[] otherPinYin = new string[]
2499 {
2500 "Chu","Ji","Wu","Gai","Nian","Sa","Pi","Gen","Cheng","Ge","Nao","E","Shu","Yu","Pie","Bi",
2501 "Tuo","Yao","Yao","Zhi","Di","Xin","Yin","Kui","Yu","Gao","Tao","Dian","Ji","Nai","Nie","Ji",
2502 "Qi","Mi","Bei","Se","Gu","Ze","She","Cuo","Yan","Jue","Si","Ye","Yan","Fang","Po","Gui",
2503 "Kui","Bian","Ze","Gua","You","Ce","Yi","Wen","Jing","Ku","Gui","Kai","La","Ji","Yan","Wan",
2504 "Kuai","Piao","Jue","Qiao","Huo","Yi","Tong","Wang","Dan","Ding","Zhang","Le","Sa","Yi","Mu","Ren",
2505 "Yu","Pi","Ya","Wa","Wu","Chang","Cang","Kang","Zhu","Ning","Ka","You","Yi","Gou","Tong","Tuo",
2506 "Ni","Ga","Ji","Er","You","Kua","Kan","Zhu","Yi","Tiao","Chai","Jiao","Nong","Mou","Chou","Yan",
2507 "Li","Qiu","Li","Yu","Ping","Yong","Si","Feng","Qian","Ruo","Pai","Zhuo","Shu","Luo","Wo","Bi",
2508 "Ti","Guan","Kong","Ju","Fen","Yan","Xie","Ji","Wei","Zong","Lou","Tang","Bin","Nuo","Chi","Xi",
2509 "Jing","Jian","Jiao","Jiu","Tong","Xuan","Dan","Tong","Tun","She","Qian","Zu","Yue","Cuan","Di","Xi",
2510 "Xun","Hong","Guo","Chan","Kui","Bao","Pu","Hong","Fu","Fu","Su","Si","Wen","Yan","Bo","Gun",
2511 "Mao","Xie","Luan","Pou","Bing","Ying","Luo","Lei","Liang","Hu","Lie","Xian","Song","Ping","Zhong","Ming",
2512 "Yan","Jie","Hong","Shan","Ou","Ju","Ne","Gu","He","Di","Zhao","Qu","Dai","Kuang","Lei","Gua",
2513 "Jie","Hui","Shen","Gou","Quan","Zheng","Hun","Xu","Qiao","Gao","Kuang","Ei","Zou","Zhuo","Wei","Yu",
2514 "Shen","Chan","Sui","Chen","Jian","Xue","Ye","E","Yu","Xuan","An","Di","Zi","Pian","Mo","Dang",
2515 "Su","Shi","Mi","Zhe","Jian","Zen","Qiao","Jue","Yan","Zhan","Chen","Dan","Jin","Zuo","Wu","Qian",
2516 "Jing","Ban","Yan","Zuo","Bei","Jing","Gai","Zhi","Nie","Zou","Chui","Pi","Wei","Huang","Wei","Xi",
2517 "Han","Qiong","Kuang","Mang","Wu","Fang","Bing","Pi","Bei","Ye","Di","Tai","Jia","Zhi","Zhu","Kuai",
2518 "Qie","Xun","Yun","Li","Ying","Gao","Xi","Fu","Pi","Tan","Yan","Juan","Yan","Yin","Zhang","Po",
2519 "Shan","Zou","Ling","Feng","Chu","Huan","Mai","Qu","Shao","He","Ge","Meng","Xu","Xie","Sou","Xie",
2520 "Jue","Jian","Qian","Dang","Chang","Si","Bian","Ben","Qiu","Ben","E","Fa","Shu","Ji","Yong","He",
2521 "Wei","Wu","Ge","Zhen","Kuang","Pi","Yi","Li","Qi","Ban","Gan","Long","Dian","Lu","Che","Di",
2522 "Tuo","Ni","Mu","Ao","Ya","Die","Dong","Kai","Shan","Shang","Nao","Gai","Yin","Cheng","Shi","Guo",
2523 "Xun","Lie","Yuan","Zhi","An","Yi","Pi","Nian","Peng","Tu","Sao","Dai","Ku","Die","Yin","Leng",
2524 "Hou","Ge","Yuan","Man","Yong","Liang","Chi","Xin","Pi","Yi","Cao","Jiao","Nai","Du","Qian","Ji",
2525 "Wan","Xiong","Qi","Xiang","Fu","Yuan","Yun","Fei","Ji","Li","E","Ju","Pi","Zhi","Rui","Xian",
2526 "Chang","Cong","Qin","Wu","Qian","Qi","Shan","Bian","Zhu","Kou","Yi","Mo","Gan","Pie","Long","Ba",
2527 "Mu","Ju","Ran","Qing","Chi","Fu","Ling","Niao","Yin","Mao","Ying","Qiong","Min","Tiao","Qian","Yi",
2528 "Rao","Bi","Zi","Ju","Tong","Hui","Zhu","Ting","Qiao","Fu","Ren","Xing","Quan","Hui","Xun","Ming",
2529 "Qi","Jiao","Chong","Jiang","Luo","Ying","Qian","Gen","Jin","Mai","Sun","Hong","Zhou","Kan","Bi","Shi",
2530 "Wo","You","E","Mei","You","Li","Tu","Xian","Fu","Sui","You","Di","Shen","Guan","Lang","Ying",
2531 "Chun","Jing","Qi","Xi","Song","Jin","Nai","Qi","Ba","Shu","Chang","Tie","Yu","Huan","Bi","Fu",
2532 "Tu","Dan","Cui","Yan","Zu","Dang","Jian","Wan","Ying","Gu","Han","Qia","Feng","Shen","Xiang","Wei",
2533 "Chan","Kai","Qi","Kui","Xi","E","Bao","Pa","Ting","Lou","Pai","Xuan","Jia","Zhen","Shi","Ru",
2534 "Mo","En","Bei","Weng","Hao","Ji","Li","Bang","Jian","Shuo","Lang","Ying","Yu","Su","Meng","Dou",
2535 "Xi","Lian","Cu","Lin","Qu","Kou","Xu","Liao","Hui","Xun","Jue","Rui","Zui","Ji","Meng","Fan",
2536 "Qi","Hong","Xie","Hong","Wei","Yi","Weng","Sou","Bi","Hao","Tai","Ru","Xun","Xian","Gao","Li",
2537 "Huo","Qu","Heng","Fan","Nie","Mi","Gong","Yi","Kuang","Lian","Da","Yi","Xi","Zang","Pao","You",
2538 "Liao","Ga","Gan","Ti","Men","Tuan","Chen","Fu","Pin","Niu","Jie","Jiao","Za","Yi","Lv","Jun",
2539 "Tian","Ye","Ai","Na","Ji","Guo","Bai","Ju","Pou","Lie","Qian","Guan","Die","Zha","Ya","Qin",
2540 "Yu","An","Xuan","Bing","Kui","Yuan","Shu","En","Chuai","Jian","Shuo","Zhan","Nuo","Sang","Luo","Ying",
2541 "Zhi","Han","Zhe","Xie","Lu","Zun","Cuan","Gan","Huan","Pi","Xing","Zhuo","Huo","Zuan","Nang","Yi",
2542 "Te","Dai","Shi","Bu","Chi","Ji","Kou","Dao","Le","Zha","A","Yao","Fu","Mu","Yi","Tai",
2543 "Li","E","Bi","Bei","Guo","Qin","Yin","Za","Ka","Ga","Gua","Ling","Dong","Ning","Duo","Nao",
2544 "You","Si","Kuang","Ji","Shen","Hui","Da","Lie","Yi","Xiao","Bi","Ci","Guang","Yue","Xiu","Yi",
2545 "Pai","Kuai","Duo","Ji","Mie","Mi","Zha","Nong","Gen","Mou","Mai","Chi","Lao","Geng","En","Zha",
2546 "Suo","Zao","Xi","Zuo","Ji","Feng","Ze","Nuo","Miao","Lin","Zhuan","Zhou","Tao","Hu","Cui","Sha",
2547 "Yo","Dan","Bo","Ding","Lang","Li","Shua","Chuo","Die","Da","Nan","Li","Kui","Jie","Yong","Kui",
2548 "Jiu","Sou","Yin","Chi","Jie","Lou","Ku","Wo","Hui","Qin","Ao","Su","Du","Ke","Nie","He",
2549 "Chen","Suo","Ge","A","En","Hao","Dia","Ai","Ai","Suo","Hei","Tong","Chi","Pei","Lei","Cao",
2550 "Piao","Qi","Ying","Beng","Sou","Di","Mi","Peng","Jue","Liao","Pu","Chuai","Jiao","O","Qin","Lu",
2551 "Ceng","Deng","Hao","Jin","Jue","Yi","Sai","Pi","Ru","Cha","Huo","Nang","Wei","Jian","Nan","Lun",
2552 "Hu","Ling","You","Yu","Qing","Yu","Huan","Wei","Zhi","Pei","Tang","Dao","Ze","Guo","Wei","Wo",
2553 "Man","Zhang","Fu","Fan","Ji","Qi","Qian","Qi","Qu","Ya","Xian","Ao","Cen","Lan","Ba","Hu",
2554 "Ke","Dong","Jia","Xiu","Dai","Gou","Mao","Min","Yi","Dong","Qiao","Xun","Zheng","Lao","Lai","Song",
2555 "Yan","Gu","Xiao","Guo","Kong","Jue","Rong","Yao","Wai","Zai","Wei","Yu","Cuo","Lou","Zi","Mei",
2556 "Sheng","Song","Ji","Zhang","Lin","Deng","Bin","Yi","Dian","Chi","Pang","Cu","Xun","Yang","Hou","Lai",
2557 "Xi","Chang","Huang","Yao","Zheng","Jiao","Qu","San","Fan","Qiu","An","Guang","Ma","Niu","Yun","Xia",
2558 "Pao","Fei","Rong","Kuai","Shou","Sun","Bi","Juan","Li","Yu","Xian","Yin","Suan","Yi","Guo","Luo",
2559 "Ni","She","Cu","Mi","Hu","Cha","Wei","Wei","Mei","Nao","Zhang","Jing","Jue","Liao","Xie","Xun",
2560 "Huan","Chuan","Huo","Sun","Yin","Dong","Shi","Tang","Tun","Xi","Ren","Yu","Chi","Yi","Xiang","Bo",
2561 "Yu","Hun","Zha","Sou","Mo","Xiu","Jin","San","Zhuan","Nang","Pi","Wu","Gui","Pao","Xiu","Xiang",
2562 "Tuo","An","Yu","Bi","Geng","Ao","Jin","Chan","Xie","Lin","Ying","Shu","Dao","Cun","Chan","Wu",
2563 "Zhi","Ou","Chong","Wu","Kai","Chang","Chuang","Song","Bian","Niu","Hu","Chu","Peng","Da","Yang","Zuo",
2564 "Ni","Fu","Chao","Yi","Yi","Tong","Yan","Ce","Kai","Xun","Ke","Yun","Bei","Song","Qian","Kui",
2565 "Kun","Yi","Ti","Quan","Qie","Xing","Fei","Chang","Wang","Chou","Hu","Cui","Yun","Kui","E","Leng",
2566 "Zhui","Qiao","Bi","Su","Qie","Yong","Jing","Qiao","Chong","Chu","Lin","Meng","Tian","Hui","Shuan","Yan",
2567 "Wei","Hong","Min","Kang","Ta","Lv","Kun","Jiu","Lang","Yu","Chang","Xi","Wen","Hun","E","Qu",
2568 "Que","He","Tian","Que","Kan","Jiang","Pan","Qiang","San","Qi","Si","Cha","Feng","Yuan","Mu","Mian",
2569 "Dun","Mi","Gu","Bian","Wen","Hang","Wei","Le","Gan","Shu","Long","Lu","Yang","Si","Duo","Ling",
2570 "Mao","Luo","Xuan","Pan","Duo","Hong","Min","Jing","Huan","Wei","Lie","Jia","Zhen","Yin","Hui","Zhu",
2571 "Ji","Xu","Hui","Tao","Xun","Jiang","Liu","Hu","Xun","Ru","Su","Wu","Lai","Wei","Zhuo","Juan",
2572 "Cen","Bang","Xi","Mei","Huan","Zhu","Qi","Xi","Song","Du","Zhuo","Pei","Mian","Gan","Fei","Cong",
2573 "Shen","Guan","Lu","Shuan","Xie","Yan","Mian","Qiu","Sou","Huang","Xu","Pen","Jian","Xuan","Wo","Mei",
2574 "Yan","Qin","Ke","She","Mang","Ying","Pu","Li","Ru","Ta","Hun","Bi","Xiu","Fu","Tang","Pang",
2575 "Ming","Huang","Ying","Xiao","Lan","Cao","Hu","Luo","Huan","Lian","Zhu","Yi","Lu","Xuan","Gan","Shu",
2576 "Si","Shan","Shao","Tong","Chan","Lai","Sui","Li","Dan","Chan","Lian","Ru","Pu","Bi","Hao","Zhuo",
2577 "Han","Xie","Ying","Yue","Fen","Hao","Ba","Bao","Gui","Dang","Mi","You","Chen","Ning","Jian","Qian",
2578 "Wu","Liao","Qian","Huan","Jian","Jian","Zou","Ya","Wu","Jiong","Ze","Yi","Er","Jia","Jing","Dai",
2579 "Hou","Pang","Bu","Li","Qiu","Xiao","Ti","Qun","Kui","Wei","Huan","Lu","Chuan","Huang","Qiu","Xia",
2580 "Ao","Gou","Ta","Liu","Xian","Lin","Ju","Xie","Miao","Sui","La","Ji","Hui","Tuan","Zhi","Kao",
2581 "Zhi","Ji","E","Chan","Xi","Ju","Chan","Jing","Nu","Mi","Fu","Bi","Yu","Che","Shuo","Fei",
2582 "Yan","Wu","Yu","Bi","Jin","Zi","Gui","Niu","Yu","Si","Da","Zhou","Shan","Qie","Ya","Rao",
2583 "Shu","Luan","Jiao","Pin","Cha","Li","Ping","Wa","Xian","Suo","Di","Wei","E","Jing","Biao","Jie",
2584 "Chang","Bi","Chan","Nu","Ao","Yuan","Ting","Wu","Gou","Mo","Pi","Ai","Pin","Chi","Li","Yan",
2585 "Qiang","Piao","Chang","Lei","Zhang","Xi","Shan","Bi","Niao","Mo","Shuang","Ga","Ga","Fu","Nu","Zi",
2586 "Jie","Jue","Bao","Zang","Si","Fu","Zou","Yi","Nu","Dai","Xiao","Hua","Pian","Li","Qi","Ke",
2587 "Zhui","Can","Zhi","Wu","Ao","Liu","Shan","Biao","Cong","Chan","Ji","Xiang","Jiao","Yu","Zhou","Ge",
2588 "Wan","Kuang","Yun","Pi","Shu","Gan","Xie","Fu","Zhou","Fu","Chu","Dai","Ku","Hang","Jiang","Geng",
2589 "Xiao","Ti","Ling","Qi","Fei","Shang","Gun","Duo","Shou","Liu","Quan","Wan","Zi","Ke","Xiang","Ti",
2590 "Miao","Hui","Si","Bian","Gou","Zhui","Min","Jin","Zhen","Ru","Gao","Li","Yi","Jian","Bin","Piao",
2591 "Man","Lei","Miao","Sao","Xie","Liao","Zeng","Jiang","Qian","Qiao","Huan","Zuan","Yao","Ji","Chuan","Zai",
2592 "Yong","Ding","Ji","Wei","Bin","Min","Jue","Ke","Long","Dian","Dai","Po","Min","Jia","Er","Gong",
2593 "Xu","Ya","Heng","Yao","Luo","Xi","Hui","Lian","Qi","Ying","Qi","Hu","Kun","Yan","Cong","Wan",
2594 "Chen","Ju","Mao","Yu","Yuan","Xia","Nao","Ai","Tang","Jin","Huang","Ying","Cui","Cong","Xuan","Zhang",
2595 "Pu","Can","Qu","Lu","Bi","Zan","Wen","Wei","Yun","Tao","Wu","Shao","Qi","Cha","Ma","Li",
2596 "Pi","Miao","Yao","Rui","Jian","Chu","Cheng","Cong","Xiao","Fang","Pa","Zhu","Nai","Zhi","Zhe","Long",
2597 "Jiu","Ping","Lu","Xia","Xiao","You","Zhi","Tuo","Zhi","Ling","Gou","Di","Li","Tuo","Cheng","Kao",
2598 "Lao","Ya","Rao","Zhi","Zhen","Guang","Qi","Ting","Gua","Jiu","Hua","Heng","Gui","Jie","Luan","Juan",
2599 "An","Xu","Fan","Gu","Fu","Jue","Zi","Suo","Ling","Chu","Fen","Du","Qian","Zhao","Luo","Chui",
2600 "Liang","Guo","Jian","Di","Ju","Cou","Zhen","Nan","Zha","Lian","Lan","Ji","Pin","Ju","Qiu","Duan",
2601 "Chui","Chen","Lv","Cha","Ju","Xuan","Mei","Ying","Zhen","Fei","Ta","Sun","Xie","Gao","Cui","Gao",
2602 "Shuo","Bin","Rong","Zhu","Xie","Jin","Qiang","Qi","Chu","Tang","Zhu","Hu","Gan","Yue","Qing","Tuo",
2603 "Jue","Qiao","Qin","Lu","Zun","Xi","Ju","Yuan","Lei","Yan","Lin","Bo","Cha","You","Ao","Mo",
2604 "Cu","Shang","Tian","Yun","Lian","Piao","Dan","Ji","Bin","Yi","Ren","E","Gu","Ke","Lu","Zhi",
2605 "Yi","Zhen","Hu","Li","Yao","Shi","Zhi","Quan","Lu","Zhe","Nian","Wang","Chuo","Zi","Cou","Lu",
2606 "Lin","Wei","Jian","Qiang","Jia","Ji","Ji","Kan","Deng","Gai","Jian","Zang","Ou","Ling","Bu","Beng",
2607 "Zeng","Pi","Po","Ga","La","Gan","Hao","Tan","Gao","Ze","Xin","Yun","Gui","He","Zan","Mao",
2608 "Yu","Chang","Ni","Qi","Sheng","Ye","Chao","Yan","Hui","Bu","Han","Gui","Xuan","Kui","Ai","Ming",
2609 "Tun","Xun","Yao","Xi","Nang","Ben","Shi","Kuang","Yi","Zhi","Zi","Gai","Jin","Zhen","Lai","Qiu",
2610 "Ji","Dan","Fu","Chan","Ji","Xi","Di","Yu","Gou","Jin","Qu","Jian","Jiang","Pin","Mao","Gu",
2611 "Wu","Gu","Ji","Ju","Jian","Pian","Kao","Qie","Suo","Bai","Ge","Bo","Mao","Mu","Cui","Jian",
2612 "San","Shu","Chang","Lu","Pu","Qu","Pie","Dao","Xian","Chuan","Dong","Ya","Yin","Ke","Yun","Fan",
2613 "Chi","Jiao","Du","Die","You","Yuan","Guo","Yue","Wo","Rong","Huang","Jing","Ruan","Tai","Gong","Zhun",
2614 "Na","Yao","Qian","Long","Dong","Ka","Lu","Jia","Shen","Zhou","Zuo","Gua","Zhen","Qu","Zhi","Jing",
2615 "Guang","Dong","Yan","Kuai","Sa","Hai","Pian","Zhen","Mi","Tun","Luo","Cuo","Pao","Wan","Niao","Jing",
2616 "Yan","Fei","Yu","Zong","Ding","Jian","Cou","Nan","Mian","Wa","E","Shu","Cheng","Ying","Ge","Lv",
2617 "Bin","Teng","Zhi","Chuai","Gu","Meng","Sao","Shan","Lian","Lin","Yu","Xi","Qi","Sha","Xin","Xi",
2618 "Biao","Sa","Ju","Sou","Biao","Biao","Shu","Gou","Gu","Hu","Fei","Ji","Lan","Yu","Pei","Mao",
2619 "Zhan","Jing","Ni","Liu","Yi","Yang","Wei","Dun","Qiang","Shi","Hu","Zhu","Xuan","Tai","Ye","Yang",
2620 "Wu","Han","Men","Chao","Yan","Hu","Yu","Wei","Duan","Bao","Xuan","Bian","Tui","Liu","Man","Shang",
2621 "Yun","Yi","Yu","Fan","Sui","Xian","Jue","Cuan","Huo","Tao","Xu","Xi","Li","Hu","Jiong","Hu",
2622 "Fei","Shi","Si","Xian","Zhi","Qu","Hu","Fu","Zuo","Mi","Zhi","Ci","Zhen","Tiao","Qi","Chan",
2623 "Xi","Zhuo","Xi","Rang","Te","Tan","Dui","Jia","Hui","Nv","Nin","Yang","Zi","Que","Qian","Min",
2624 "Te","Qi","Dui","Mao","Men","Gang","Yu","Yu","Ta","Xue","Miao","Ji","Gan","Dang","Hua","Che",
2625 "Dun","Ya","Zhuo","Bian","Feng","Fa","Ai","Li","Long","Zha","Tong","Di","La","Tuo","Fu","Xing",
2626 "Mang","Xia","Qiao","Zhai","Dong","Nao","Ge","Wo","Qi","Dui","Bei","Ding","Chen","Zhou","Jie","Di",
2627 "Xuan","Bian","Zhe","Gun","Sang","Qing","Qu","Dun","Deng","Jiang","Ca","Meng","Bo","Kan","Zhi","Fu",
2628 "Fu","Xu","Mian","Kou","Dun","Miao","Dan","Sheng","Yuan","Yi","Sui","Zi","Chi","Mou","Lai","Jian",
2629 "Di","Suo","Ya","Ni","Sui","Pi","Rui","Sou","Kui","Mao","Ke","Ming","Piao","Cheng","Kan","Lin",
2630 "Gu","Ding","Bi","Quan","Tian","Fan","Zhen","She","Wan","Tuan","Fu","Gang","Gu","Li","Yan","Pi",
2631 "Lan","Li","Ji","Zeng","He","Guan","Juan","Jin","Ga","Yi","Po","Zhao","Liao","Tu","Chuan","Shan",
2632 "Men","Chai","Nv","Bu","Tai","Ju","Ban","Qian","Fang","Kang","Dou","Huo","Ba","Yu","Zheng","Gu",
2633 "Ke","Po","Bu","Bo","Yue","Mu","Tan","Dian","Shuo","Shi","Xuan","Ta","Bi","Ni","Pi","Duo",
2634 "Kao","Lao","Er","You","Cheng","Jia","Nao","Ye","Cheng","Diao","Yin","Kai","Zhu","Ding","Diu","Hua",
2635 "Quan","Ha","Sha","Diao","Zheng","Se","Chong","Tang","An","Ru","Lao","Lai","Te","Keng","Zeng","Li",
2636 "Gao","E","Cuo","Lve","Liu","Kai","Jian","Lang","Qin","Ju","A","Qiang","Nuo","Ben","De","Ke",
2637 "Kun","Gu","Huo","Pei","Juan","Tan","Zi","Qie","Kai","Si","E","Cha","Sou","Huan","Ai","Lou",
2638 "Qiang","Fei","Mei","Mo","Ge","Juan","Na","Liu","Yi","Jia","Bin","Biao","Tang","Man","Luo","Yong",
2639 "Chuo","Xuan","Di","Tan","Jue","Pu","Lu","Dui","Lan","Pu","Cuan","Qiang","Deng","Huo","Zhuo","Yi",
2640 "Cha","Biao","Zhong","Shen","Cuo","Zhi","Bi","Zi","Mo","Shu","Lv","Ji","Fu","Lang","Ke","Ren",
2641 "Zhen","Ji","Se","Nian","Fu","Rang","Gui","Jiao","Hao","Xi","Po","Die","Hu","Yong","Jiu","Yuan",
2642 "Bao","Zhen","Gu","Dong","Lu","Qu","Chi","Si","Er","Zhi","Gua","Xiu","Luan","Bo","Li","Hu",
2643 "Yu","Xian","Ti","Wu","Miao","An","Bei","Chun","Hu","E","Ci","Mei","Wu","Yao","Jian","Ying",
2644 "Zhe","Liu","Liao","Jiao","Jiu","Yu","Hu","Lu","Guan","Bing","Ding","Jie","Li","Shan","Li","You",
2645 "Gan","Ke","Da","Zha","Pao","Zhu","Xuan","Jia","Ya","Yi","Zhi","Lao","Wu","Cuo","Xian","Sha",
2646 "Zhu","Fei","Gu","Wei","Yu","Yu","Dan","La","Yi","Hou","Chai","Lou","Jia","Sao","Chi","Mo",
2647 "Ban","Ji","Huang","Biao","Luo","Ying","Zhai","Long","Yin","Chou","Ban","Lai","Yi","Dian","Pi","Dian",
2648 "Qu","Yi","Song","Xi","Qiong","Zhun","Bian","Yao","Tiao","Dou","Ke","Yu","Xun","Ju","Yu","Yi",
2649 "Cha","Na","Ren","Jin","Mei","Pan","Dang","Jia","Ge","Ken","Lian","Cheng","Lian","Jian","Biao","Chu",
2650 "Ti","Bi","Ju","Duo","Da","Bei","Bao","Lv","Bian","Lan","Chi","Zhe","Qiang","Ru","Pan","Ya",
2651 "Xu","Jun","Cun","Jin","Lei","Zi","Chao","Si","Huo","Lao","Tang","Ou","Lou","Jiang","Nou","Mo",
2652 "Die","Ding","Dan","Ling","Ning","Guo","Kui","Ao","Qin","Han","Qi","Hang","Jie","He","Ying","Ke",
2653 "Han","E","Zhuan","Nie","Man","Sang","Hao","Ru","Pin","Hu","Qian","Qiu","Ji","Chai","Hui","Ge",
2654 "Meng","Fu","Pi","Rui","Xian","Hao","Jie","Gong","Dou","Yin","Chi","Han","Gu","Ke","Li","You",
2655 "Ran","Zha","Qiu","Ling","Cheng","You","Qiong","Jia","Nao","Zhi","Si","Qu","Ting","Kuo","Qi","Jiao",
2656 "Yang","Mou","Shen","Zhe","Shao","Wu","Li","Chu","Fu","Qiang","Qing","Qi","Xi","Yu","Fei","Guo",
2657 "Guo","Yi","Pi","Tiao","Quan","Wan","Lang","Meng","Chun","Rong","Nan","Fu","Kui","Ke","Fu","Sou",
2658 "Yu","You","Lou","You","Bian","Mou","Qin","Ao","Man","Mang","Ma","Yuan","Xi","Chi","Tang","Pang",
2659 "Shi","Huang","Cao","Piao","Tang","Xi","Xiang","Zhong","Zhang","Shuai","Mao","Peng","Hui","Pan","Shan","Huo",
2660 "Meng","Chan","Lian","Mie","Li","Du","Qu","Fou","Ying","Qing","Xia","Shi","Zhu","Yu","Ji","Du",
2661 "Ji","Jian","Zhao","Zi","Hu","Qiong","Po","Da","Sheng","Ze","Gou","Li","Si","Tiao","Jia","Bian",
2662 "Chi","Kou","Bi","Xian","Yan","Quan","Zheng","Jun","Shi","Gang","Pa","Shao","Xiao","Qing","Ze","Qie",
2663 "Zhu","Ruo","Qian","Tuo","Bi","Dan","Kong","Wan","Xiao","Zhen","Kui","Huang","Hou","Gou","Fei","Li",
2664 "Bi","Chi","Su","Mie","Dou","Lu","Duan","Gui","Dian","Zan","Deng","Bo","Lai","Zhou","Yu","Yu",
2665 "Chong","Xi","Nie","Nv","Chuan","Shan","Yi","Bi","Zhong","Ban","Fang","Ge","Lu","Zhu","Ze","Xi",
2666 "Shao","Wei","Meng","Shou","Cao","Chong","Meng","Qin","Niao","Jia","Qiu","Sha","Bi","Di","Qiang","Suo",
2667 "Jie","Tang","Xi","Xian","Mi","Ba","Li","Tiao","Xi","Zi","Can","Lin","Zong","San","Hou","Zan",
2668 "Ci","Xu","Rou","Qiu","Jiang","Gen","Ji","Yi","Ling","Xi","Zhu","Fei","Jian","Pian","He","Yi",
2669 "Jiao","Zhi","Qi","Qi","Yao","Dao","Fu","Qu","Jiu","Ju","Lie","Zi","Zan","Nan","Zhe","Jiang",
2670 "Chi","Ding","Gan","Zhou","Yi","Gu","Zuo","Tuo","Xian","Ming","Zhi","Yan","Shai","Cheng","Tu","Lei",
2671 "Kun","Pei","Hu","Ti","Xu","Hai","Tang","Lao","Bu","Jiao","Xi","Ju","Li","Xun","Shi","Cuo",
2672 "Dun","Qiong","Xue","Cu","Bie","Bo","Ta","Jian","Fu","Qiang","Zhi","Fu","Shan","Li","Tuo","Jia",
2673 "Bo","Tai","Kui","Qiao","Bi","Xian","Xian","Ji","Jiao","Liang","Ji","Chuo","Huai","Chi","Zhi","Dian",
2674 "Bo","Zhi","Jian","Die","Chuai","Zhong","Ju","Duo","Cuo","Pian","Rou","Nie","Pan","Qi","Chu","Jue",
2675 "Pu","Fan","Cu","Zhu","Lin","Chan","Lie","Zuan","Xie","Zhi","Diao","Mo","Xiu","Mo","Pi","Hu",
2676 "Jue","Shang","Gu","Zi","Gong","Su","Zhi","Zi","Qing","Liang","Yu","Li","Wen","Ting","Ji","Pei",
2677 "Fei","Sha","Yin","Ai","Xian","Mai","Chen","Ju","Bao","Tiao","Zi","Yin","Yu","Chuo","Wo","Mian",
2678 "Yuan","Tuo","Zhui","Sun","Jun","Ju","Luo","Qu","Chou","Qiong","Luan","Wu","Zan","Mou","Ao","Liu",
2679 "Bei","Xin","You","Fang","Ba","Ping","Nian","Lu","Su","Fu","Hou","Tai","Gui","Jie","Wei","Er",
2680 "Ji","Jiao","Xiang","Xun","Geng","Li","Lian","Jian","Shi","Tiao","Gun","Sha","Huan","Ji","Qing","Ling",
2681 "Zou","Fei","Kun","Chang","Gu","Ni","Nian","Diao","Shi","Zi","Fen","Die","E","Qiu","Fu","Huang",
2682 "Bian","Sao","Ao","Qi","Ta","Guan","Yao","Le","Biao","Xue","Man","Min","Yong","Gui","Shan","Zun",
2683 "Li","Da","Yang","Da","Qiao","Man","Jian","Ju","Rou","Gou","Bei","Jie","Tou","Ku","Gu","Di",
2684 "Hou","Ge","Ke","Bi","Lou","Qia","Kuan","Bin","Du","Mei","Ba","Yan","Liang","Xiao","Wang","Chi",
2685 "Xiang","Yan","Tie","Tao","Yong","Biao","Kun","Mao","Ran","Tiao","Ji","Zi","Xiu","Quan","Jiu","Bin",
2686 "Huan","Lie","Me","Hui","Mi","Ji","Jun","Zhu","Mi","Qi","Ao","She","Lin","Dai","Chu","You",
2687 "Xia","Yi","Qu","Du","Li","Qing","Can","An","Fen","You","Wu","Yan","Xi","Qiu","Han","Zha"
2688 };
2689 #endregion 二级汉字
2690 #region 变量定义
2691 // GB2312-80 标准规范中第一个汉字的机内码.即"啊"的机内码
2692 private const int firstChCode = -20319;
2693 // GB2312-80 标准规范中最后一个汉字的机内码.即"齄"的机内码
2694 private const int lastChCode = -2050;
2695 // GB2312-80 标准规范中最后一个一级汉字的机内码.即"座"的机内码
2696 private const int lastOfOneLevelChCode = -10247;
2697 // 配置中文字符
2698 //static Regex regex = new Regex("[\u4e00-\u9fa5]$");
2699
2700 #endregion
2701 #endregion
2702
2703 /// <summary>
2704 /// 取拼音第一个字段
2705 /// </summary>
2706 /// <param name="ch"></param>
2707 /// <returns></returns>
2708 public static String GetFirst(Char ch)
2709 {
2710 var rs = Get(ch);
2711 if (!String.IsNullOrEmpty(rs)) rs = rs.Substring(0, 1);
2712
2713 return rs;
2714 }
2715
2716 /// <summary>
2717 /// 取拼音第一个字段
2718 /// </summary>
2719 /// <param name="str"></param>
2720 /// <returns></returns>
2721 public static String GetFirst(String str)
2722 {
2723 if (String.IsNullOrEmpty(str)) return String.Empty;
2724
2725 var sb = new StringBuilder(str.Length + 1);
2726 var chs = str.ToCharArray();
2727
2728 for (var i = 0; i < chs.Length; i++)
2729 {
2730 sb.Append(GetFirst(chs[i]));
2731 }
2732
2733 return sb.ToString();
2734 }
2735
2736 /// <summary>
2737 /// 获取单字拼音
2738 /// </summary>
2739 /// <param name="ch"></param>
2740 /// <returns></returns>
2741 public static String Get(Char ch)
2742 {
2743 // 拉丁字符
2744 if (ch <= '\x00FF') return ch.ToString();
2745
2746 // 标点符号、分隔符
2747 if (Char.IsPunctuation(ch) || Char.IsSeparator(ch)) return ch.ToString();
2748
2749 // 非中文字符
2750 if (ch < '\x4E00' || ch > '\x9FA5') return ch.ToString();
2751
2752 var arr = Encoding.GetEncoding("gb2312").GetBytes(ch.ToString());
2753 //Encoding.Default默认在中文环境里虽是GB2312,但在多变的环境可能是其它
2754 //var arr = Encoding.Default.GetBytes(ch.ToString());
2755 var chr = (Int16)arr[0] * 256 + (Int16)arr[1] - 65536;
2756
2757 //***// 单字符--英文或半角字符
2758 if (chr > 0 && chr < 160) return ch.ToString();
2759 #region 中文字符处理
2760
2761 // 判断是否超过GB2312-80标准中的汉字范围
2762 if (chr > lastChCode || chr < firstChCode)
2763 {
2764 return ch.ToString();;
2765 }
2766 // 如果是在一级汉字中
2767 else if (chr <= lastOfOneLevelChCode)
2768 {
2769 // 将一级汉字分为12块,每块33个汉字.
2770 for (int aPos = 11; aPos >= 0; aPos--)
2771 {
2772 int aboutPos = aPos * 33;
2773 // 从最后的块开始扫描,如果机内码大于块的第一个机内码,说明在此块中
2774 if (chr >= pyValue[aboutPos])
2775 {
2776 // Console.WriteLine("存在于第 " + aPos.ToString() + " 块,此块的第一个机内码是: " + pyValue[aPos * 33].ToString());
2777 // 遍历块中的每个音节机内码,从最后的音节机内码开始扫描,
2778 // 如果音节内码小于机内码,则取此音节
2779 for (int i = aboutPos + 32; i >= aboutPos; i--)
2780 {
2781 if (pyValue[i] <= chr)
2782 {
2783 // Console.WriteLine("找到第一个小于要查找机内码的机内码: " + pyValue[i].ToString());
2784 return pyName[i];
2785 }
2786 }
2787 break;
2788 }
2789 }
2790 }
2791 // 如果是在二级汉字中
2792 else
2793 {
2794 int pos = Array.IndexOf(otherChinese, ch.ToString());
2795 if (pos != decimal.MinusOne)
2796 {
2797 return otherPinYin[pos];
2798 }
2799 }
2800 #endregion 中文字符处理
2801
2802 //if (chr < -20319 || chr > -10247) { // 不知道的字符
2803 // return null;
2804
2805 //for (var i = pyValue.Length - 1; i >= 0; i--)
2806 //{
2807 // if (pyValue[i] <= chr) return pyName[i];//这只能对应数组已经定义的
2808 //}
2809
2810 return String.Empty;
2811 }
2812
2813 /// <summary>
2814 /// 把汉字转换成拼音(全拼)
2815 /// </summary>
2816 /// <param name="str">汉字字符串</param>
2817 /// <returns>转换后的拼音(全拼)字符串</returns>
2818 public static String GetPinYin(String str)
2819 {
2820 if (String.IsNullOrEmpty(str)) return String.Empty;
2821
2822 var sb = new StringBuilder(str.Length * 10);
2823 var chs = str.ToCharArray();
2824
2825 for (var j = 0; j < chs.Length; j++)
2826 {
2827 sb.Append(Get(chs[j]));
2828 }
2829
2830 return sb.ToString();
2831 }
2832 #endregion
2833
2834 #region 获取网页的HTML内容
2835 // 获取网页的HTML内容,指定Encoding
2836 public static string GetHtml(string url, Encoding encoding)
2837 {
2838 byte[] buf = new WebClient().DownloadData(url);
2839 if (encoding != null) return encoding.GetString(buf);
2840 string html = Encoding.UTF8.GetString(buf);
2841 encoding = GetEncoding(html);
2842 if (encoding == null || encoding == Encoding.UTF8) return html;
2843 return encoding.GetString(buf);
2844 }
2845 // 根据网页的HTML内容提取网页的Encoding
2846 public static Encoding GetEncoding(string html)
2847 {
2848 string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
2849 string charset = Regex.Match(html, pattern).Groups["charset"].Value;
2850 try { return Encoding.GetEncoding(charset); }
2851 catch (ArgumentException) { return null; }
2852 }
2853 #endregion
2854 }
2855 }