Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python特殊字符unicode_Python_Variables_Unicode - Fatal编程技术网

Python特殊字符unicode

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

我有一个python脚本,其中我指定了一个参数:

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隐式解释的,因此像
ü
这样的字符不应该出现在字节字符串文本中。本文可能有点高人一等,但仍然是一篇宝贵的知识。