如何在 Python 中将字符串转换为 utf-8

新手上路,请多包涵

我有一个将 utf-8 字符发送到我的 Python 服务器的浏览器,但是当我从查询字符串中检索它时,Python 返回的编码是 ASCII。如何将纯字符串转换为 utf-8?

注意:从 Web 传递的字符串已经是 UTF-8 编码的,我只想让 Python 将其视为 UTF-8 而不是 ASCII。

原文由 Bin Chen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

在 Python 2 中

>>> plain_string = "Hi!"
>>> unicode_string = u"Hi!"
>>> type(plain_string), type(unicode_string)
(<type 'str'>, <type 'unicode'>)

^ 这是字节字符串 (plain_string) 和 unicode 字符串之间的区别。

 >>> s = "Hello!"
>>> u = unicode(s, "utf-8")

^ 转换为 unicode 并指定编码。

在 Python 3 中

所有字符串都是 unicode。 unicode 功能不再存在。请参阅@Noumenon 的回答

原文由 user225312 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果上述方法不起作用,您还可以告诉 Python 忽略无法转换为 utf-8 的字符串部分:

 stringnamehere.decode('utf-8', 'ignore')

原文由 duhaime 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题