我正在使用该OptParse
模块来检索字符串值。OptParse
只支持str
类型化的字符串,不支持unicode
。
所以假设我开始我的脚本:
./someScript --some-option ééééé
在代码中读取时,键入的法语字符(例如“é”)会str
触发s:UnicodeDecodeError
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 99: ordinal not in range(128)
我玩了一下 unicode 内置函数,但要么出现错误,要么字符消失:
>>> unicode('é');
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
>>> unicode('é', errors='ignore');
u''
有什么我可以OptParse
用来检索unicode
/utf-8
字符串的吗?
更新:
似乎可以检索并打印该字符串,但随后我尝试将该字符串与 sqlite 一起使用(使用 APSW 模块),并尝试使用 以某种方式转换为 unicode cursor.execute("...")
,然后发生错误。
这是导致错误的示例程序:
#!/usr/bin/python
# coding: utf-8
import os, sys, optparse
parser = optparse.OptionParser()
parser.add_option("--some-option")
(opts, args) = parser.parse_args()
print unicode(opts.some_option)