2009-10-12 49 views
1

我正在使用Django。提交表單後,由於編碼的值不同? (Python)

以常規形式,用戶輸入「Gerry & Pacemakers」。

(注意&符號。)

當我去views.py ...

def myview(request): 
    q = request.GET.get('q','').strip() 
    print q 

q是 「格里」 ...但它應該是 「格里&心臟起搏器」。 ..編碼爲 正確的方法是通過使用urllib來做到這一點?

如何對它進行編碼之前,它擊中視圖? 這是非常奇怪,因爲URL包含編碼: Q =格里+%26個+起搏器

+2

Alex,你不必在主題中粘住(python)。它被標記爲python,這就夠了。 IMO。 (不是說它傷害了什麼,我只是看起來很有趣)。 – 2009-10-12 09:43:06

+1

「如何在打開視圖之前對其進行編碼?」 這就是瀏覽器的工作。這個問題似乎相當於它在錯誤的地方被解碼了,或者一次太多了......雖然不知道Django足以幫助你。 – 2009-10-12 09:46:30

+0

感謝提示Lennart – TIMEX 2009-10-12 09:51:51

回答

2

因爲你是從拉在request.GET中的數據,它看起來像你正在構建的URL在瀏覽器中莫名其妙。您需要使用Javascript escape()函數來正確處理URL重要字符。

+0

'escape()'函數在不同的瀏覽器中做了不同的事情,所以最好使用'encodeURIComponent()'。 – 2009-10-12 10:02:22

+2

實際上,逃逸在瀏覽器中是一致的......它只是一直錯誤。 :-) encodeURIComponent確實是構建查詢字符串的正確函數。 – bobince 2009-10-12 14:41:12