这是我的行事方式:
Regex.Replace(evilWeirdoText, @"[\u0000-\u001F]", string.Empty)
此命令剥离了前31个控制字符。比\u001F高一个十六进制的值是\u0020,也就是空格。在空格之前的所有字符都是换行和空字符。
我认为以下代码对你有用:
public static string RemoveControlCharacters(string inString)
{
if (inString == null) return null;
StringBuilder newString = new StringBuilder();
char ch;
for (int i = 0; i < inString.Length; i++)
{
ch = inString[i];
if (!char.IsControl(ch))
{
newString.Append(ch);
}
}
return newString.ToString();
}
HttpHeader
时遇到“指定的值具有无效的控制字符”异常。 - Xaqron!char.IsControl(ch)
,现在应该可以正常工作了。 - Centro\"
、;
等都会导致问题。我不知道如何从 utf-8
字符串中删除它们。 - Xaqronchar.IsLetter()
方法。 - Jalal SaidUri.EscapeUriString()
或Uri.EscapeDataString()
进行转义。
注意:您可能仍然需要先从char.IsControl()中提取任何内容。
utf-8
字符串,其中包含一些分号和控制字符。我提供了一个链接,链接到最相似的问题:https://dev59.com/pnVD5IYBdhLWcg3wTZ1m - Xaqron<32
的字符吗? - CodesInChaosHttpHeader
,但出现了这个异常:“指定的值具有无效的控制字符”。 - Xaqron