gpt4 book ai didi

python - 如何在 Python 中使用 .encode ('utf-8' )?

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:56 28 4
gpt4 key购买 nike

我正在管理一些 Python 代码,现在我在日志中看到一个错误:

Traceback (most recent call last):
File "./app/core.py", line 772, in scrapeEmail
l.info('EMAIL SUBJECT: ', header['value'])
File "./app/__init__.py", line 44, in info
logging.info(str(datetime.utcnow()) + ' INFO ' + caller.filename + ':' + str(caller.lineno) + ' - ' + ' '.join([str(x) for x in args]))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xea' in position 25: ordinal not in range(128)

我猜这意味着 header['value'] 包含不同编码的字符。

我四处搜索,this SO answer建议“将 .encode('utf-8') 放在最近版本的 Python 对象的末尾”。

这给我提出了两个问题:

  1. 我需要在什么对象上使用.encode('utf-8')。在 xstr(x) 上。那么应该是 str(x.encode('utf-8')) 还是在 str(x).encode('utf-8') 上?
  2. 作者所说的“最新版本的 Python”是什么意思?我还能在 Python 2.7 中使用 .encode('utf-8') 吗?

通常我会简单地尝试一下,但要找到发生错误的字符串并不容易(实际上是不可能的)。所以我无法真正测试它。

如果能提供一点帮助,我们将不胜感激。

最佳答案

我建议大家先弄清楚unicode和其他编码格式(如GB2312、GBK)的关系。而且很快编解码就没有大问题了:)

下图将向您展示其中的关系,一旦您了解了其中的要点,您就会知道何时以及如何在代码中进行编码和解码。 :)

---------              -----------             ----------
| | 1.decode(A) | | 2.encode(B) | |
| A | -----------> | unicode | ----------->| B |
| | <----------- | | <---------- | |
| | 4.encode(A) | | 3.decode(B) | |
--------- ----------- ----------

所以,根据这个图,你应该知道现在是什么编码,要转换成什么编码,然后按照图中的关系。

关于python - 如何在 Python 中使用 .encode ('utf-8' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34157668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com