2013-05-04 94 views
0

我遇到了问题,而我试图获取UNICODE字符并将它们放入列表中。问题是,我得到的符号十六进制代码,而不是符号本身.. 任何人都可以帮助我吗?无法获得UNICODE字符

我的代码:

KeysLst = [] 

for i in range(1000, 1100): 
    char = unichr(i) 
    KeysLst.append(char) 

print KeysLst 

输出:

[u'\u03e8', u'\u03e9', u'\u03ea', u'\u03eb', u'\u03ec', u'\u03ed', u'\u03ee', u'\u03ef', u'\u03f0', u'\u03f1', u'\u03f2', u'\u03f3', u'\u03f4', u'\u03f5', u'\u03f6', u'\u03f7', u'\u03f8', u'\u03f9', u'\u03fa', u'\u03fb', u'\u03fc', u'\u03fd', u'\u03fe', u'\u03ff', u'\u0400', u'\u0401', u'\u0402', u'\u0403', u'\u0404', u'\u0405', u'\u0406', u'\u0407', u'\u0408', u'\u0409', u'\u040a', u'\u040b', u'\u040c', u'\u040d', u'\u040e', u'\u040f', u'\u0410', u'\u0411', u'\u0412', u'\u0413', u'\u0414', u'\u0415', u'\u0416', u'\u0417', u'\u0418', u'\u0419', u'\u041a', u'\u041b', u'\u041c', u'\u041d', u'\u041e', u'\u041f', u'\u0420', u'\u0421', u'\u0422', u'\u0423', u'\u0424', u'\u0425', u'\u0426', u'\u0427', u'\u0428', u'\u0429', u'\u042a', u'\u042b', u'\u042c', u'\u042d', u'\u042e', u'\u042f', u'\u0430', u'\u0431', u'\u0432', u'\u0433', u'\u0434', u'\u0435', u'\u0436', u'\u0437', u'\u0438', u'\u0439', u'\u043a', u'\u043b', u'\u043c', u'\u043d', u'\u043e', u'\u043f', u'\u0440', u'\u0441', u'\u0442', u'\u0443', u'\u0444', u'\u0445', u'\u0446', u'\u0447', u'\u0448', u'\u0449', u'\u044a', u'\u044b'] 

回答

1

得到Unicode字符。

但是,Python向您展示了unicode字面转义,以便于调试。那些u'\u03e8'的值是仍然是一个字符的unicoe字符串。

尝试打印清单中的单个值:

>>> print KeysLst[0] 
Ϩ 
>>> print KeysLst[1] 
ϩ 
>>> KeysLst[0] 
u'\u03e8' 
>>> KeysLst[1] 
u'\u03e9' 

Unicode转义表示用于任何码点打印的ASCII范围之外:

>>> u'A' 
u'A' 
>>> u'\n' 
u'\n' 
>>> u'\x86' 
u'\x86' 
>>> u'\u0025' 
u'%' 
0

当您打印清单,您将得到列表中元素的重新生成(由括号括起并用逗号分隔)。

如果你要打印的Unicode的字形,尽量

KeysLst = [] 
for i in range(1000, 1100): 
    char = unichr(i) 
    KeysLst.append(char) 

for char in KeysLst: 
    print char, 

这将产生

Ϩ ϩ Ϫ ϫ Ϭ ϭ Ϯ ϯ ϰ ϱ ϲ ϳ ϴ ϵ ϶ Ϸ ϸ Ϲ Ϻ ϻ ϼ Ͻ Ͼ Ͽ Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы