字典中的unicode给出十六进制输出

时间:2011-06-09 17:55:54

标签: python

我有一个字典(键,值)对。关键是'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

1 个答案:

答案 0 :(得分:7)

您需要手动移动值。打印正在将其转换为十六进制,因为您要求它打印整个元组,并且打印将您的字符串视为任意二进制数据。为了不完全弄乱一些人终端,它将可能不可打印的字符编码为十六进制。字符串的内容不受影响 - 它只是你如何显示它的产物。

举个例子:

for v in t_t.values():
    print v

这应打印预期值。

您还应该考虑使用Python 3或Unicode字符串(u“Unicode字符串”)。你现在拥有的是不可移植的,并且取决于你的系统编码。