【发布时间】:2013-11-30 02:37:46
【问题描述】:
在 django 中使用 post 时,一个 ascii 字符串会自动转换成 unicode 字符串。 例如:
s = '\xe2\x80\x99'
是 str 类型的字符串。 (是utf-8格式)
当post这个字符串到django,然后从request.POST中获取,它会被转成unicode字符串:
u'\xe2\x80\x99'
这可能会导致解码/编码错误,因为python认为它是一个unicode字符串,但实际上它是一个utf-8字符串。
我的问题是如何将 unicode 字符串强制转换为 ascii 字符串?这意味着只需将前 'u' 从 u'\xe2\x80\x99' 删除到 '\xe2\x80\x99'。在这种情况下,解码和编码等传统方法可能无法正常工作。
【问题讨论】:
-
你为什么不能只做
mystr.decode("utf8")? -
您需要添加更多细节。特别是,您如何将该字符串发布到 Django?您的 HTML 是什么样的,您的 HTTP 请求使用什么编码?
标签: python django string unicode utf-8