2011-07-20 144 views
0

我有一種情況,用戶可以在URL查詢字符串中輸入他們想要的任何字符。從URL查詢字符串讀取特殊字符

例子:

http://localhost/default.aspx?ID=a‡jljglkjg

我怎麼能接受在asp.net特殊字符,如‡,和†從URL查詢字符串?我發現當我嘗試檢索這些URL查詢字符串時,這些特殊字符將被替換爲「?」。

注意:用戶將這些查詢字符串輸入到URL中。

+0

爲什麼不使UrlEncode?這是不允許的?第二,你如何嘗試檢索這些字符 - 用什麼函數? – Aristos

+0

我正在使用Request.QueryString來檢索這些字符。 – m0g

回答

0

只能使用ASCII character-set通過Internet發送URL。

這些字符總是被排除,你需要找到另一種方式來做到這一點。

+0

我有一個傳統的應用程序使用經典的ASP,它能夠正確接受這個查詢字符串並再次顯示出來。 – m0g

1

此URL爲錯誤根據RFC

  • 如果他們使用的瀏覽器,它通常會做ecoding需要。
  • 如果是由JavaScript完成後,使用encodeURIcomponent
  • 如果它是一個C#應用程序,使用HttpUtility.UrlEncodehere
+0

傳統ASP如何才能正確處理這個請求,而不是asp.net呢? – m0g

+0

此外,插入符號(^)是一個有效的請求,但也會被替換爲問號。這是爲什麼? – m0g

+0

ASP可以在處理之前清理它。用'^'我覺得很困惑。 – Aliostad