我正在尝试找到一个字符串,该字符串会引发UnicodeEncodeError
:
dirty_str = 'FC Bayern München' # or anything else possible
dirty_str.encode('utf-8')
无论我给输入什么信息,它都不会引发异常:S有任何想法为什么会发生这种情况?
答案 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字节。)