2011-11-09 44 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))) 

,现在,它完美的作品。不知道为什么。希望这会帮助那里的人。

相关问题