当我运行这个 Python 2.7 代码时(编辑:更新了代码)
import io
x = io.StringIO(u'\ud801')
CPython 运行良好,但 IronPython 抛出以下错误:
UnicodeEncodeError:
Unable to translate Unicode character \uD801 at index 0 to specified code page.
我认为这是因为U+D801 是一个不成对的代理,因此是一个无效字符,但是哪个实现在这里显示正确的行为?这段代码应该抛出还是不抛出?