3
http://localhost/WOZNIAK.png
這出來的罰款。不過,如果我URL以這個規則改寫這個:
<rewrite url="~/images/articles/(.*)$" to="~/handlers/displayimage.ashx?src=$1&type=article" processing="stop"/>
而訪問這個URL:
http://localhost/images/articles/WOZNIAK.png
它不顯示圖像。我的處理程序開始與代碼:
public void ProcessRequest (HttpContext context) {
string ImageSrc = context.Request.QueryString["src"];
string ImageType = context.Request.QueryString["type"];
如果我拿ImageSrc
值它輸出爲:
WOŹNIAK.png
如果我明確設置ImageSrc
是在代碼中的圖像顯示效果細膩價值ImageSrc = "WOZNIAK.png";
。
我需要做些什麼才能讓這些Unicode字符正確傳遞?這對我們來說是非常有問題的,因爲我們已經有全世界的用戶上傳大量圖像,其中一些圖像包含大量帶有Unicode字符的名稱。
由於設計原因,以任何方式重命名或修改這些圖像都非常成問題,所以我真的很想解決這個問題!
編輯
看來我也許應該Server.UrlEncode
所有查詢字符串PARAMS。這可能是原因嗎?我不確定在URL重寫規則中是否可以這樣做?
如果我設置的字符串:
ImageSrc = context.Server.UrlDecode("WO%c5%b9NIAK.png");
它的工作原理。所以我想這個問題是URL編碼重寫規則中的查詢字符串參數。
我認爲編碼的查詢串,然後對其進行解碼將修復它。 – Maysam 2011-12-19 17:30:55