我用djanog在webfaction上部署了一個項目。一切都很順利,直到最近,突然之間,我開始出現這個錯誤:UnicodeEncodeError:'ascii'編解碼器無法編碼64-68位置的字符:序號不在範圍內(128) URL是俄文字符。但問題是,當我重新啓動Apache時,再也沒有錯誤了。所以我很難確定這個錯誤。Django的UnicodeEncodeError:不一致的行爲
回答
閱讀:
- https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror
最有可能你需要確保UTF-8被設置爲LANG語言對環境的Apache下運行。
否則,您需要確保在適當情況下自己處理代碼中的Unicode問題。
無法控制Apache(它是Webfaction的)。所以,對於第二個選項,我只是確保所有的URL都是unicode(請參閱我自己的回答對我的問題的評論)。 – Andrey
Web Faction下Apache的啓動是通過一個腳本來控制的,該腳本是在您選擇應該使用它時爲您創建的帳戶下創建的。換句話說,您應該可以根據需要修改腳本。在〜/ webapps下創建的特定站點應用程序目錄的apache2/bin中進行挖掘。具體來說,查看apachectl腳本,看看它是否仍然在同一個目錄中承認'envvars'文件,也就是說,讀取它的環境變量。如果是這樣,請將它們粘在那裏。 –
它接縫,我通過使所有的URL簡單ascii解決它,但感謝您的洞察力,我會檢查它以備將來參考! – Andrey
此錯誤出現,因爲文件名或文件內容cotains垃圾收集的或以另一種語言(英語除外)..
所以,你可以爲這個新增unicode()
。或者檢查NLTK
庫處理這種情況。
是的,我有這樣的問題,但現在它有點不同:它只是不一致的(有時我得到的錯誤;有時 - 不是;在同一個網址)。 – Andrey
我想它與webfaction或我與Apache的不正確處理有關:實際上,我在我的crontab中重新啓動了Apache命令。 發現了類似的問題(處理阿帕奇故意重新啓動)時,webfaction人提議:
touch /path to /wsgi.py
代替:
apache2/restart
我更換之後... /重啓上述行我沒有更多錯誤消息。
不幸的是,我得到了同樣的Unicode錯誤...只是在URL中更改爲unicode;似乎保持穩定幾天。如果感興趣,我在夾層設置中使用了SLUGIFY ='uuslug.slugify'設置。 (當然安裝uuslug) – Andrey
- 1. Django的JSON和XML裝置導致UnicodeEncodeError
- 2. Django中的UnicodeEncodeError
- 3. UnicodeEncodeError從Django的
- 4. Django - UnicodeEncodeError
- 5. ApplicationWillEnterForeground的不一致行爲
- 6. 不一致的行爲
- 7. NSURLCache:不一致的行爲
- 8. sscanf()的行爲不一致()
- 9. SimpleDateFormat的行爲不一致
- 10. 不一致的recv()行爲
- 11. javascript_include_tag不一致的行爲
- 12. 不一致的DataContractAttribute行爲
- 13. User.IsInRole()不一致的行爲
- 14. 不一致的行爲strsplit
- 15. RelativeLayout:layout_marginLeft不一致的行爲
- 16. 不一致的行爲
- 17. UTL_MAIL.Send不一致的行爲
- 18. Django的UnicodeEncodeError會話解碼
- 19. django升級到1.8的UnicodeEncodeError
- 20. 行爲SDK的行爲不一致
- 21. 不一致行爲
- 22. UnicodeEncodeError與nginx和Django
- 23. 不一致的Django錯誤
- 24. Django memcached不一致
- 25. Lucene的QueryParser的不一致的行爲
- 26. 一個矛盾的行爲不一致
- 27. NHibernate的不一致的抓取行爲
- 28. NSNumberFormatter的不一致的行爲
- 29. 的getaddrinfo不一致的行爲
- 30. 與jQuery的find()不一致的行爲
當使用內置的Django服務器(可能在某處離線)嘗試此操作時是否出現此錯誤? – Evert
也許你沒有正確配置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
也許。我會檢查出來的。但我不明白爲什麼它可以與西里爾文當我重新啓動Apache?它是生產服務器。 – Andrey