字典中的unicode输出十六进制
我有一个字典,里面存的是键值对。键是'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 个回答
7
你需要手动遍历这些值。打印出来的内容变成了十六进制,因为你让它打印整个元组,而打印函数把你的字符串当成了任意的二进制数据。为了不让某些人的终端显示得太乱,它把可能无法打印的字符编码成了十六进制。字符串的内容并没有受到影响——这只是你显示方式的结果。
举个例子:
for v in t_t.values():
print v
这样应该能打印出你想要的值。
你还应该考虑使用Python 3或者Unicode字符串(u"Unicode字符串")。你现在用的方式不太通用,依赖于你的系统编码。