Python特殊字符Unicode
我有一个Python脚本,在里面我需要指定一个参数:
parser = optparse.OptionParser()
parser.add_option("-D", "--departure", dest="departure",default="", type="string",help="specify departure")
然后在我的脚本中,我需要对输入的字符串做一些处理。
当我输入:-D "Düsseldorf"
这个字符串在脚本中没有被正确识别。
有人告诉我可以用u"Düsseldorf",但我需要把"Düsseldorf"存储在一个变量里。
像这样:变量 = u + "Düsseldorf"……嗯,我真的不知道该怎么做。
谢谢你的帮助。
祝好。
2 个回答
0
你不仅需要为你的Python源代码指定一个可以表示ü
这个字符的字符编码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
而且你还要记住,在命令行中输入的参数(至少在Unix系统中,我不太了解Windows)是以字节的形式存在的。所以你应该把选项指定为字节字符串,而不是字符(Unicode)字符串。
举个例子:
parser.add_option("-D", "--departure", dest="departure",
default=u"Düsseldorf".encode('UTF-8'),
type="string",help="specify departure")
现在默认的参数就是一个字节字符串,就像你传给add_option
方法的其他所有参数一样。
另外,你还必须确保如果有人在他们的终端输入这个字符串,他们的终端字符编码是UTF-8。如果他们使用了其他的终端字符编码,那么在命令行中显示的字节字符串就会不同。这就是Unix的工作方式,Python无法改变这一点。
0
PEP-0264 这篇文档告诉你如何在 Python 脚本中使用 Unicode。
如果你比较懒,可以在你的脚本开头加上:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print u"Düsseldorf"
别忘了把它保存为 UTF-8 格式,并且不要带 BOM。