python-3.x - Python3:会导致 UnicodeEncodeError 的示例字符串
问题描述
我正在尝试找到一个字符串,它会引发UnicodeEncodeError
:
dirty_str = 'FC Bayern München' # or anything else possible
dirty_str.encode('utf-8')
无论我为输入提供了什么,它都不会引发异常:S 任何想法为什么会发生这种情况?
解决方案
编码时,代理项(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 字节。)