2010-07-28 99 views
1

我有一個問題,如果我通過在查詢字符串包含+,並嘗試讀取一個字符串,它會得到相同的字符串,但通過與空字符
更換+例如,如果我通過查詢像../Page.aspx?data=sdf1+sdf然後在頁面負載我讀到data = Request.QueryString["data"]data它會得到如下data ="sdf1 sdf"
我解決了更換與+任何空字符的問題..爲什麼Request.QueryString在某些情況下用空字符替換+?

但有沒有引起任何問題嗎?我的解決方案是用+替換空字符是否是所有情況下的最佳解決方案?

回答

5

因爲+是空間" "的url編碼表示形式。如果你想preseve的加號,你的價值,你需要URL編碼是:

"/Page.aspx?data=" + HttpUtility.UrlEncode("sdf1+sdf") 

這將產生:

/Page.aspx?data=sdf1%2bsdf 

現在,當你閱讀Request.QueryString["data"]你會得到你所期望的。

+0

謝謝darin .. – 2010-07-28 23:42:51

相關問題