【问题标题】:Sending UTF-encoded POST request [duplicate]发送 UTF 编码的 POST 请求 [重复]
【发布时间】: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


【解决方案1】:

如果您实际上不使用 Unicode,您是否应该抱怨它?

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

【讨论】:

  • 我不知道 form.cleaned_data['var'] 中的内容,但我希望将 unicode 作为 some_var 的类型
  • 我真的不知道为什么,但它有效! 8点
  • 我之前看到过 - 但不幸的是它并没有跟我说话...我还在想,有些妖精有时会在我的代码中撒尿;D
猜你喜欢
  • 2019-10-15
  • 2018-09-10
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 2022-06-19
  • 1970-01-01
  • 2011-12-12
相关资源
最近更新 更多