Python使用三个unicode字符来表示亚洲的fullstop?这很奇怪?

Lit*_*les 0 python unicode utf-8

python文件:

# -*- coding: utf-8 -*-

print u"?" 
print [u"?".encode('utf8')]
Run Code Online (Sandbox Code Playgroud)

生产:

?
['\xe3\x80\x82']
Run Code Online (Sandbox Code Playgroud)

为什么python使用3个字符来存储我的1个fullstop?这真的很奇怪,如果你单独打印每一个,它们也都是不同的.有任何想法吗?

Mic*_*man 7

在UTF-8中,三个字节(不是真正的字符)用于表示U + 07FF和U + FFFF之间的代码点,例如此字符,IDEOGRAPHIC FULL STOP(U + 3002).

尝试使用转储脚本文件od -x.您应该找到用于表示字符的相同三个字节.