Python特殊字符unicode
我有一个python脚本,其中我指定了一个参数:Python特殊字符unicode,python,variables,unicode,Python,Variables,Unicode,我有一个python脚本,其中我指定了一个参数: parser = optparse.OptionParser() parser.add_option("-D", "--departure", dest="departure",default="", type="string",help="specify departure") 在我的脚本中,我必须输入一些字符串 当我打字时:-D“Düsseldorf” 脚本中无法正确识别该字符串 有人告诉我做uüsseldorf,但我需要在变量中存储uüs
parser = optparse.OptionParser()
parser.add_option("-D", "--departure", dest="departure",default="", type="string",help="specify departure")
在我的脚本中,我必须输入一些字符串
当我打字时:-D“Düsseldorf”
脚本中无法正确识别该字符串
有人告诉我做uüsseldorf,但我需要在变量中存储uüsseldorf
类似于variable=u+“Düsseldorf”。。。。嗯,我真的不知道;我不知道怎么做
谢谢你的帮助
问候。介绍如何在python脚本中使用Unicode
或者,对于懒惰的人,从以下内容开始编写脚本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print u"Düsseldorf"
不要忘记将其作为不带BOM的UTF-8进行求解。您不仅需要为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\u选项的所有其他参数一样
此外,您必须确保,如果有人将此字符串输入到他们的终端,那么他们将使用UTF-8的终端字符编码。如果它们使用不同的终端字符编码,命令行中将显示不同的字节字符串。Unix就是这样工作的,Python没有能力改变它。有人也给你发了一个链接。也许你应该读一读那么我该怎么做:myvar=“Düsseldorf”然后myvar2=umyvar?在Python2中,语句myvar=“Düsseldorf”
实际上是无效的,因为如果不使用u
前缀,您就是在指定字节字符串,而ASCII被隐式地用于解释文字字节字符串,“像这样的字符串”
是字节字符串,u“像这样的字符串”
是字符串。在Python 3中,像这样的字符串是字符串,像这样的字符串是字节字符串。在这两种情况下,字节字符串都是使用ASCII隐式解释的,因此像ü
这样的字符不应该出现在字节字符串文本中。本文可能有点高人一等,但仍然是一篇宝贵的知识。