我尝试了不同的方法将所有可能的Unicode字符写入文件,但是它给我一个55297-57344范围的错误。哪种编码支持该范围? UnicodeEncodeError: 'utf-8' codec can't encode characters in position 55297-57344: surrogates not allowed
bb=""
for b in range(0, 1114111):
bb+=chr(b)
with open('allcharacters', 'w', encoding="utf-8") as file:
file.write(bb)
答案 0 :(得分:1)
Code points U+D800 through U+DFFF包含在各种"Surrogates" Unicode blocks中。当包含在补充多语言平面中的文本的UTF-16文本被(错误)解码为UCS-2时,它们就会产生;它们绝对不能导致正常运行,也不应被视为字符。