2009-12-14 98 views
1

我通過vb.net查詢字符串到一個頁面,根據不同的參數,就可以了西班牙字符,至極的作品完美的開發和測試服務器上,而不是在生產。Server.Encode /解碼在生產服務器無法正常工作

因此,查詢字符串裏面我編碼的名字是這樣的:

Server.UrlEncode(name) 

甚至以前被加載時,服務器將引發「500 Internal Server Error」 這個網址:

http://website/Dir/Page.aspx?num=CEJMEJINMFCEGICCEH&name=Jose+Bonse%c3%b1or+Del+Rosario 

當我替換%c3%b1爲任何其他正常的字母,它的工作原理(%c3%b1是一個「ñ」)

再次,它在其他服務器上工作得很好,除了生產,我甚至不知道從哪裏開始尋找..

回答

3

HttpServerUtility類(其中「服務器」是頁面基類中的一個實例)默認使用ASCII解碼和編碼URL參數。當然,ASCII並不足以處理其他本地化。要強制統一,請嘗試使用HttpUtility類,而不是UrlEncodeUnicode功能...

HttpUtility.UrlEncodeUnicode(name) 
+0

*有人*喜歡CounterStrike ... – 2009-12-14 18:08:16

+0

哈哈是啊,我曾經玩。還沒有一段時間。順便說一下,在Reflector中查看Server.UrlEncode後,我完全改變了我的答案。 – 2009-12-14 18:09:51

1

有一些流行想到兩兩件事,雖然我不能說,我實際測試無論是在這種特殊情況下(請求字符串編碼)。

首先,你的頁面是如何編碼的?也就是說,你是否指出使用的字符集?

二,如何配置服務器電腦re:本地化?我會比較三臺計算機上控制面板中的「區域和語言選項」。

最後(好,那是三)Web.Config中有本地化選項。像往常一樣,CodeProject有關於這個主題的great article

祝你好運!

相關問題