2011-03-06 50 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