2011-11-09 49 views
0

我是使用django和dajax的新手,我在使用dajax.assign將html文件加載到另一個div中時遇到問題html使用非英文字符時,當我將網站語言設置爲英語時,它工作正常,但是當我切換到西班牙語時,它不會。UnicodeDecodeError:使用render_to_response和dajax.assign時,'ascii'編解碼器無法解碼錯誤

下面是我在做什麼:

我想:

dajax.assign('#setttabs-1','innerHTML','abc') 

,它工作正常。在div正確顯示文本,但是當我嘗試(我試圖做網站的翻譯):

dajax.assign('#setttabs-1','innerHTML','ábcñ') 

生成異常:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 465: ordinal not in range(128) 

我去了,做了一些搜索上谷歌,發現這個:

dajax.assign('#setttabs-1','innerHTML','ábcñ'.decode('utf-8')) 

這又使它正常工作並正確顯示所有的字符,問題是,我需要說div來加載模板,所以下面不工作:

dajax.assign('#setttabs-1','innerHTML',render_to_response('./settings/_change_language.html'.decode('utf-8'), context_instance=RequestContext(request))) 

它還會在嘗試加載模板時引發上述異常。該模板具有編碼元:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

我ajax.py也開始有:

# coding: utf-8 

我如何告訴dajax對待這個文件爲UTF-8,因此它可以正確呈現呢? 有沒有更實際的方法來做我想在這裏做的事情? 我覺得我錯過了一些非常簡單的事情,但我無法弄清楚。 在此先感謝您提供的任何幫助。

回答

0

我改變:

dajax.assign('#setttabs-1','innerHTML',render_to_response('./settings/_change_language.html'), context_instance=RequestContext(request))) 

到:

dajax.assign('#setttabs-1','innerHTML',render_to_string('./settings/_change_language.html'.decode('utf-8'), context_instance=RequestContext(request))) 

,現在,它完美的作品。不知道爲什麼。希望這會幫助那裏的人。

相關問題