让Python3显示正确的tzname

让Python3显示正确的tzname,python,encoding,Python,Encoding,我想看看时区的名字。下面是Python2中的代码: Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import time >>> time.tzname ('\xd6\xd0\xb9\xfa\xb1\xea

我想看看时区的名字。下面是Python2中的代码:

Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import time
>>> time.tzname
('\xd6\xd0\xb9\xfa\xb1\xea\xd7\xbc\xca\xb1\xbc\xe4', '\xd6\xd0\xb9\xfa\xcf\xc4\xc1\xee\xca\xb1')
>>> a = time.tzname[0]
>>> print(a)
中国标准时间   # correct output
到目前为止还不错。我的电脑是Windows7,默认编码为
gbk

然后我尝试了蟒蛇3:

>>> time.tzname
('Öйú±ê׼ʱ¼ä', 'ÖйúÏÄÁîʱ')
>>> a = time.tzname[0]
>>> print(a)
Öйú±ê׼ʱ¼ä

那么,当使用Python3时,这里到底发生了什么?如何获得正确的输出?

起初我并不想回答这个问题,但在我写下整个问题后,我找到了答案,所以我把它写了下来

原因是它没有使用正确的编码,应该使用
gbk
,但是Python选择了
latin-1
。这证明:

>>> print(a.encode('latin-1').decode('gbk'))
中国标准时间