发送UTF编码的POST请求

时间:2012-12-23 00:17:23

标签: javascript ajax django unicode

  

可能重复:
  ‘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字符,它以

打破
  

'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“ł”和你“\ u0142”和“\ u0142”

所有这些意味着几乎相同,但不一样。

1 个答案:

答案 0 :(得分:1)

如果你实际上没有使用它,你应该抱怨Unicode吗?

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