在Python 2 REPL上:
>>> sys.stdin.encoding
'UTF-8'
所以我的理解是,在stdin
>>> stringLiteral = 'abc'
解释器从stdin
编码中读取utf-8
中的表达式并解释代码。
但是我了解到,在Python 2中,str
类型将'abc'
存储为字节字符串,并在CPython内部将其存储为C char *
以null结尾的字符串(即由\0
)终止的字节数组。
str
类用于在内存中存储'abc'
的编码方案是什么? str
在打印时使用什么解码方案打印'abc'
?
根据答案,如果我给出以下表达式:
>>> stringLiteralNonAsciiRange = 'abc정정'
那么stringLiteralNonAsciiRange
为什么不打印정정
?为什么输出'abc\xec\xa0\x95\xec\xa0\x95\xf0\x9f\x92\x9b'
?