首页 > 解决方案 > Python3:会导致 UnicodeEncodeError 的示例字符串

问题描述

我正在尝试找到一个字符串,它会引发UnicodeEncodeError

dirty_str = 'FC Bayern München'   # or anything else possible
dirty_str.encode('utf-8')

无论我为输入提供了什么,它都不会引发异常:S 任何想法为什么会发生这种情况?

标签: python-3.xunicode

解决方案


编码时,代理项(D800-DBFF 和 DC00-DFFF)将升高:

>>> '\ud83d\udca9'.encode()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-1: surrogates not allowed

但是,由于您从 获取字符串input(),因此您无法输入将解码为这些代码点的 UTF-8 字符串。(不过,在 Linux 系统上,Python 将使用这些来表示路径和文件名中的无效 UTF-8 字节。)


推荐阅读