Python的特殊字符的Unicode
问题描述:
我,其中一个我指定一个参数一个Python脚本:Python的特殊字符的Unicode
parser = optparse.OptionParser()
parser.add_option("-D", "--departure", dest="departure",default="", type="string",help="specify departure")
,在我的剧本,我必须与输入的字符串的几件事情。
当我键入:-D“杜塞尔多夫”
字符串是不脚本
有人告诉我,做U“杜塞尔多夫”正确识别,但我需要在一个变量去库存化“杜塞尔多夫”
东西像变量= u +“杜塞尔多夫”....嗯我真的不知道该怎么做。
谢谢你的帮助。
问候。
答
PEP-0264说明如何在Python脚本中使用Unicode。
或者,对于懒惰的,有启动脚本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print u"Düsseldorf"
而且不要忘了将它解决为UTF-8无BOM。
答
你不仅需要指定你的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无权改变它。
有人还向你发送了一个链接[“Python in Python,Completely Demystified”](http://farmdev.com/talks/unicode/)。也许你应该阅读它。 :) –