2012-12-23 82 views
-5

可能重复:
‘ascii’ codec can’t decode byte (problem when using django)发送UTF编码的POST请求

从一个Chrome扩展,我尝试发送POST请求:在somevariable

var = encodeURIComponent(somevariable); 

var parameters = "var=" + var; 
mypostrequest.open("POST", "django/page/", true); 
mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
mypostrequest.send(parameters); 

和时,有一些UTF-chars,它打破了

'的ASCII' 编解码器不能在位置14进行解码字节0xc4:顺序不在 范围(128)

在Django中我有:

some_var = form.cleaned_data['var'].replace('\n','') 

结果是错误的,因为some_var包含错误的字符:

some_var = u"blah blah blah z\u0142o\u017a" 

当然,它应该是u"blah blah blah złoź",但我真的不知道在哪里和我应该怎么更改编码。关闭后


更新:

这个问题是不是复制 - 问题是不是在消息中。我比你想象的要多。

最重要的事情(我不明白)是

之间的差U “L” 和u “\ u0142” 和 “\ u0142”

所有这些手段几乎相同,但不一样。

+7

避免摊牌头衔! – Ryan

+1

Rant更难。 '>>> print u“blah blah blah z \ u0142o \ u017a”' 'blah blah blahzłoź' –

+1

如果你讨厌unicode ..你喜欢哪种编码..让我们说亚洲..语言? – micha

回答

1

如果你没有真正使用它,你应该抱怨Unicode吗?

some_var = form.cleaned_data['var'].replace(u'\n', u'') 
+0

我不知道什么是在form.cleaned_data ['var'],但我想有unicode作为some_var的类型 –

+0

我真的不知道为什么,但它的作品! 8-o –

+0

http://farmdev.com/talks/unicode/ –