python中的编码:变量是什么类型

tap*_*per 1 python encoding

Python文件

# -*- coding: UTF-8 -*-
a = 'Köppler'
print a
print a.__class__.__name__
mydict = {}
mydict['name'] = a
print mydict
print mydict['name']
Run Code Online (Sandbox Code Playgroud)

输出:

Köppler
str
{'name': 'K\xc3\xb6ppler'}
Köppler
Run Code Online (Sandbox Code Playgroud)

似乎名称保持不变,但只有在打印字典时才能获得这个奇怪的转义字符串.那我在看什么?这是UTF-8表示吗?

Bjö*_*lex 5

这种行为的原因是__repr__Python 2 中的函数转义非ASCII unicode字符.如链接所示,这在Python 3中已得到修复.