我在windows上使用Notepad++编辑器,格式设置为ASCII码,我已经阅读了“PEP263:源代码编码”,并相应地修改了我的代码(我认为),但仍有字符打印在十六进制...
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
a_munge = [ "A", "4", "/\\", "\@", "/-\\", "^", "aye", "?" ]
b_munge = [ "B", "8", "13", "I3", "|3" , "P>", "|:", "!3", "(3", "/3", "3","]3" ]
c_munge = [ "C", "<", "(", "{", "(c)" ]
d_munge = [ "D", "|)", "|o", "?", "])", "[)", "I>", "|>", " ?", "T)", "0", "cl" ]
e_munge = [ "E", "3", "&", "€", "£", "[-", "|=-", "?" ]
.
.
.发布于 2010-01-23 21:38:26
也许你应该使用unicode文本(例如u'€')来代替。
发布于 2010-01-23 23:42:01
这行代码:
# -*- coding: UTF-8 -*-声明源文件以UTF-8格式保存。其他任何东西都是错误的。
在源代码中声明字节字符串时:
e_munge = [ "E", "3", "&", "€", "£", "[-", "|=-", "?" ]然后,像“source”这样的字节字符串实际上将包含用于保存源文件的编码字节。
当您改用Unicode字符串时:
e_munge = [ u"E", u"3", u"&", u"€", u"£", u"[-", u"|=-", u"?" ]然后,当Python从源文件中读取u后跟字节字符串Unicode“”时,它会使用声明的编码将该字符解码为Unicode。
下面是一个示例:
# coding: utf-8
bs = '€'
us = u'€'
print repr(bs)
print repr(us)输出:
'\xe2\x82\xac'
u'\u20ac'发布于 2010-01-24 08:40:54
print some_list实际上是print repr(some_list) --这就是为什么您看到的是\u20ac而不是欧洲字符。出于调试目的,"unicode十六进制“正是您明确显示数据所需的。
您的列表中似乎有完全正常的unicode对象;我建议您不要将列表“打印”到Tkinter。
https://stackoverflow.com/questions/2123283
复制相似问题