我有一个字典(键,值)对。关键是'ASCII'(例如'hello'), 该值不是英文(例如中文输入曲目)。
一些代码:
t_t = {}
s_0 = 'hello'
s_v = '輸入曲目'
print s_v # gives the Chinese 輸入曲目
t_t[s_0] = s_v
print t_t.values()
输出为十六进制(例如'\ x39 \ xef')
甚至访问代码中的值:
ss = t_t['hello']
print ss
给了我十六进制。
由于我使用它作为翻译器,我真的需要unicode。
通过Windows 7上的“DOS”控制台窗口运行此操作.Python版本为2.7.1
答案 0 :(得分:7)
您需要手动移动值。打印正在将其转换为十六进制,因为您要求它打印整个元组,并且打印将您的字符串视为任意二进制数据。为了不完全弄乱一些人终端,它将可能不可打印的字符编码为十六进制。字符串的内容不受影响 - 它只是你如何显示它的产物。
举个例子:
for v in t_t.values():
print v
这应打印预期值。
您还应该考虑使用Python 3或Unicode字符串(u“Unicode字符串”)。你现在拥有的是不可移植的,并且取决于你的系统编码。