2

我想从字符串中删除任何不可见的字符,只保留 0x20-0x7F 中的空格和任何字符,我使用这个:Regex.Replace(QueryString, @"[^\s\x20-\x7F]", ""); 但是它不起作用

QueryString有一个 char 0xA0,之后,该 char 仍然存在于QueryString.

我不确定为什么这不起作用?

4

2 回答 2

3

0xA0是不间断的空格字符 - 因此它与\s. 与其使用 ,不如将\s其展开到您想要包含的空白字符列表中。

于 2011-05-03T23:01:01.277 回答
0

我认为您宁愿使用 StringBuilder 来处理此类字符串。

StringBuilder sb = new StringBuilder(str.Length);
foreach(char ch in str)
{
    if (0x20 <= ch && ch <= 0x7F)
    {
        sb.Append(ch)
    }
}

string result = sb.ToString();
于 2011-05-03T23:04:15.827 回答