Python3:会导致UnicodeEncodeError的示例字符串

时间:2018-08-22 18:20:20

标签: python-3.x unicode

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

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

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

1 个答案:

答案 0 :(得分:1)

Surrogates(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字节。)