我刚刚意识到,在某些表单上,用户会复制粘贴数据(例如从 Word/Excel 复制到输入 [文本])。该数据被提交,然后保存到数据库中。
控制字符和不可打印字符被保存并且用户看不到它,但我在应用程序中有一些文件报告/出站,这些包含奇怪的数据,例如:
英镑 �..
是这个(十六进制)的结果:
37 37 7c 47 42 50 c2 a0 e2 80 93 c2 a0 74 68 65
有没有办法在全局级别过滤掉这些特殊字符?
您有几个实用程序方法附加到 char 类型(请参阅http://msdn.microsoft.com/en-us/library/424s1h3z.aspx)。
例如,要清理控制字符,您可以这样使用 linq:
public string CleanupControlsChars(string inString)
{
return new string(inString.Where(ch => !char.IsControl(ch)).ToArray());
}