我有一个python脚本,其中我指定了一个参数:
parser = optparse.OptionParser()
parser.add_option("-D", "--departure", dest="departure",default="", type="string",help="specify departure")
在我的脚本中,我必须输入一些字符串。
当我输入:-D“Düsseldorf”
脚本无法正确识别字符串
有人告诉我要你做“杜塞尔多夫”,但我需要在变量中存储“杜塞尔多夫”
类似变量= u +“Düsseldorf”....嗯我真的不知道该怎么做。
感谢您的帮助。
问候。
答案 0 :(得分:0)
PEP-0264向您解释如何在python脚本中使用Unicode。
或者,对于懒惰的,请使用以下命令启动脚本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print u"Düsseldorf"
不要忘记将其解决为没有BOM的UTF-8。
答案 1 :(得分: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没有能力改变它。