2011-03-06 112 views
0

我得到在查询字符串中的以下格式的字符串:解析在C#中的特殊字符的字符串

Arnstung%20Chew(20) 

我想把它转换只是Arnstung Chew

我该怎么做?

另外,如何确保用户不会传递脚本或任何有害的查询字符串?

+0

定义非特殊字符 – 2011-03-06 13:59:58

+1

是否要删除包含在括号或所有非文本字符中的所有内容? – 2011-03-06 14:00:32

+0

实际上应该是“Arnstung%20Chew%20(20)”,字符串如何传递给查询字符串? – cusimar9 2011-03-06 14:01:08

回答

2
string str = "Arnstung Chew (20)"; 

string replacedString = str.Substring(0, str.IndexOf("(") -1).Trim(); 

string safeString = System.Web.HttpUtility.HtmlEncode(replacedString); 
+0

是的你是对的,但应该检查,以防止例外。 – 2011-03-06 14:06:40

+0

只是一个小的改变..如果字符串如“Arnstung%20Chew(20)” – Refti 2011-03-06 14:14:34

+0

然后我会使用'string replacedString = str.Substring(0,str.IndexOf(“(”));' – 2011-03-06 14:16:58

1

如果不知道输入文本中可能出现的变化,就不可能提供全面的答案。例如,总会有两个单词用空格分隔,后面跟着括号中的数字?或者还可能有其他变化?

我在我的Black Belt Coder网站上有很多解析代码,其中包括sscanf() replacement for .NET,这可能对您的情况有用。

+0

谢谢我会检查它 – Refti 2011-03-06 14:58:52