2016-03-08 69 views
2

當通過時間戳作爲過濾參數,我得到的UnicodeDecodeError:Django的解碼URL錯誤

  • 我的要求:

    curl " http://localhost:8000/events?from=1985 ­-10­-26T09:00:00Z&to=1985­-10­27T09:00:00Z"

  • 錯誤:

    File ".env/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 153, in get_environ if '?' in path: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 31: ordinal not in range(128)

  • 兩個參數我從GET「from」和「to」有奇怪的字符:

    1985\xc2\xad10\xc2\xad26T09:00:00Z

我試過用 「UTF-8」,但沒有工作進行解碼。有什麼建議麼?

+0

我有完全一樣的問題,triyng添加一些Unicode字符串爲GET參數(例如,當'/搜索?城市=Москва')。有一些更新嗎?在發送實際請求之前,我已經閱讀了所有瀏覽器的顯示對每個URL執行「百分比編碼」,但似乎IE8不知道它。 – Znack

回答

0

這不是一個真正的django相關的問題。您必須在網址中編碼特殊字符。隨着curl你可以這樣做增加--data-urlencode

所以你的要求應該是這樣的:

curl "http://localhost:8000/events --data-urlencode from=1985­-10­-26T09:00:00Z to=1985­-10­27T09:00:00Z 
+0

這將發佈數據(不是GET)。順便說一句,錯誤也發生了,如果我在瀏覽器中輸入該網址(在發送到服務器之前由瀏覽器編碼) –