2013-11-25 59 views
0

我用djanog在webfaction上部署了一個項目。一切都很順利,直到最近,突然之間,我開始出現這個錯誤:UnicodeEncodeError:'ascii'編解碼器無法編碼64-68位置的字符:序號不在範圍內(128) URL是俄文字符。但問題是,當我重新啓動Apache時,再也沒有錯誤了。所以我很難確定這個錯誤。Django的UnicodeEncodeError:不一致的行爲

+0

當使用內置的Django服務器(可能在某處離線)嘗試此操作時是否出現此錯誤? – Evert

+0

也許你沒有正確配置Django。見http://urfuclub.ru/blog/django-uwsgi-unicodeencodeerror-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE% D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D1%81- %D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D1%8F%D0%B7%D1%8B%D1%87%D0%BD%D1%8B%D0 %BC%D0%B8-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D0%BC%D0%B8-%D0%BA%D0%B8%D1%80%D0 %B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0-%D0%B2-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D1 %85-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2/ – beerbajay

+0

也許。我會檢查出來的。但我不明白爲什麼它可以與西里爾文當我重新啓動Apache?它是生產服務器。 – Andrey

回答

0

閱讀:

最有可能你需要確保UTF-8被設置爲LANG語言對環境的Apache下運行。

否則,您需要確保在適當情況下自己處理代碼中的Unicode問題。

+0

無法控制Apache(它是Webfaction的)。所以,對於第二個選項,我只是確保所有的URL都是unicode(請參閱我自己的回答對我的問題的評論)。 – Andrey

+0

Web Faction下Apache的啓動是通過一個腳本來控制的,該腳本是在您選擇應該使用它時爲您創建的帳戶下創建的。換句話說,您應該可以根據需要修改腳本。在〜/ webapps下創建的特定站點應用程序目錄的apache2/bin中進行挖掘。具體來說,查看apachectl腳本,看看它是否仍然在同一個目錄中承認'envvars'文件,也就是說,讀取它的環境變量。如果是這樣,請將它們粘在那裏。 –

+0

它接縫,我通過使所有的URL簡單ascii解決它,但感謝您的洞察力,我會檢查它以備將來參考! – Andrey

0

此錯誤出現,因爲文件名或文件內容cotains垃圾收集的或以另一種語言(英語除外)..

所以,你可以爲這個新增unicode()。或者檢查NLTK庫處理這種情況。

+0

是的,我有這樣的問題,但現在它有點不同:它只是不一致的(有時我得到的錯誤;有時 - 不是;在同一個網址)。 – Andrey

0

我想它與webfaction或我與Apache的不正確處理有關:實際上,我在我的crontab中重新啓動了Apache命令。 發現了類似的問題(處理阿帕奇故意重新啓動)時,webfaction人提議:

touch /path to /wsgi.py 

代替:

apache2/restart 

我更換之後... /重啓上述行我沒有更多錯誤消息。

+0

不幸的是,我得到了同樣的Unicode錯誤...只是在URL中更改爲unicode;似乎保持穩定幾天。如果感興趣,我在夾層設置中使用了SLUGIFY ='uuslug.slugify'設置。 (當然安裝uuslug) – Andrey