1、过滤特殊字符
public class CharService:IDisposable { private List<char> _invalidChars; public CharService() { _invalidChars = new List<char>(); _invalidChars.AddRange(Path.GetInvalidFileNameChars()); _invalidChars.AddRange(Path.GetInvalidPathChars()); } /// <summary> /// 特殊字符过滤 /// </summary> /// <param name="str"></param> /// <returns></returns> public string SplitStringInvaild(string str,bool isLower=true) { str = ToDBC(str); StringBuilder sb = new StringBuilder(); foreach (char c in str) { if (_invalidChars.Contains(c)) continue; if(isLower) sb.Append(ToLower(c)); else sb.Append(c); } str = sb.ToString().Trim(); if (isLower) { if (str.Substring(str.Length-1,1)==".") { str = str.Substring(0, str.Length - 1); } } return str; } public static char ToLower(char c) { if (('A' <= c) && (c <= 'Z')) { c = (char)(c | ' '); } return c; } public static String ToDBC(String input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new String(c); } public void Dispose() { _invalidChars = null; } }