【发布时间】:2012-12-10 01:41:08
【问题描述】:
可能重复:
‘ascii’ codec can’t decode byte (problem when using django)
我尝试从 Chrome 扩展程序发送 POST 请求:
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);
当在somevariable 中,有一些 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ź",但我真的不知道应该在哪里以及如何更改编码。
关闭后更新:
这个问题不是重复的 - 问题不在消息中。我在 Google 上搜索的次数超出了您的想象。
最重要的是(我不明白)之间的区别
u"ł" 和 u"\u0142" 和 "\u0142"
所有这些都意味着几乎相同,但并不相同。
【问题讨论】:
-
避免乱七八糟的标题!
-
大声咆哮。
>>> print u"blah blah blah z\u0142o\u017a"blah blah blah złoź -
如果你讨厌 unicode.. 你更喜欢哪种编码.. 比如说亚洲.. 语言?
-
@micha 我讨厌 unicode 和 python 一起;D
-
@SledgehammerPL:所以,正如所指出的,你得到的字符串是正确的。错误来自哪里?
标签: javascript ajax django unicode