2012-05-07 73 views
0

下面的教程3,我寫了這個平凡views.pydjango.http.HttpResponse不處理Unicode的正確

# coding = UTF-8 
from django.http import HttpResponse 

def index(request): 
    return HttpResponse(u"Seznam kontaktů") 

我也嘗試過其他的技巧,如使用django.utils.encoding.smart_unicode(...)u"%s" % ...招,等

無論我嘗試,我總是得到 「非ASCII字符」 錯誤:

SyntaxError at /kontakty/ 

Non-ASCII character '\xc5' in file C:\Users\JindrichVavruska\eclipse\workspace\ars\src\ars_site\party\views.py 
on line 5, but no encoding declared; 
see http://www.python.org/peps/pep-0263.html for details (views.py, line 5) 

它更加神祕,因爲我在其他文件中使用了很多國家字符串,例如models.py,例如, text = models.CharField(u"Všechen text", max_length = 150),完全沒有問題。

我發現在這個網站其他答案無關,建議更改的沒有什麼區別,我views.py

Jindra

+0

哦,是的,在我的** settings.py **中有'DEFAULT_CHARSET ='utf-8''行。而且,是的,當我嘗試......時,我重啓了dev服務器幾次; ;-) –

+0

這與Django或HttpResponse無關。 –

+0

好吧,因爲它可以在所有其他模塊和本地化字符串中使用'#coding = UTF-8'和* u「...」*正常工作,除了使用HttpResponse外,我看不出有什麼不同。 :( –

回答

2

應該# -*- coding: utf-8 -*-UTF-8。有關更多詳細信息,請參見PEP-263。您還應該將文件另存爲UTF-8。檢查你的編輯器的設置。

+0

嗯,我簡直不敢相信你,因爲'UTF-8'在** models.py **中工作在同一個環境,同一個站點,同一個應用程序中。而且我之所以一直在編寫UTF-8我的腳本正是因爲它是在文檔中編寫的,因爲utf-8沒有**工作。 –

+1

好吧,你不必相信我,但這就是錯誤告訴你的。作爲UTF-8?或者只是聲明編碼,但將它們保存爲其他內容? –