我argparse
用来读取我的 python 代码的参数。其中一个输入是title
可以包含 Unicode 字符的文件 [ ] 的标题。我一直在22少女時代22
用作测试字符串。
我需要将输入的值写入title
文件,但是当我尝试将字符串转换为UTF-8
它时,总是会引发错误:
UnicodeDecodeError:“ascii”编解码器无法解码位置 2 中的字节 0x8f:序数不在范围内(128)
我一直在环顾四周,发现我需要我的字符串以u"foo"
调用.encode()
它的形式出现。
当我运行type()
我的输入时,argparse
我看到:
<type 'str'>
我希望得到以下答复:
<type 'unicode'>
我怎样才能以正确的形式获得它?
主意:
修改argparse
以接受 astr
但将其存储为 unicode 字符串u"foo"
:
parser.add_argument(u'title', metavar='T', type=unicode, help='this will be unicode encoded.')
这种方法根本行不通。想法?
编辑1:
一些示例代码在title
哪里22少女時代22
:
inputs = vars(parser.parse_args())
title = inputs["title"]
print type(title)
print type(u'foo')
title = title.encode('utf8') # This line throws the error
print title