根據文檔,在Python 2.7.3中,shlex應該支持UNICODE。但是,在運行下面的代碼時,我得到:UnicodeEncodeError: 'ascii' codec can't encode characters in position 184-189: ordinal not in range(128)
shlex.split仍然不支持unicode?
我做錯了什麼?
import shlex
command_full = u'software.py -fileA="sequence.fasta" -fileB="新建文本文檔.fasta.txt" -output_dir="..." -FORMtitle="tst"'
shlex.split(command_full)
確切的錯誤是以下幾點:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 275, in split
lex = shlex(s, posix=posix)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 25, in __init__
instream = StringIO(instream)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-49: ordinal not in range(128)
這是使用python的MacPorts從我的Mac輸出。在「native」python 2.7.3的Ubuntu機器上,我得到了完全相同的錯誤。
它不支持Unicode的'()'對象;即使現在使用'unicode()'對象,它也不能處理除ASCII字符以外的任何內容。 –
@MartijnPieters是一個錯誤或預期的行爲?我無法在文檔中找到任何有關限制的提述 – petr
已知錯誤,我想說,請參閱[此問題](http://bugs.python.org/issue742290)。 –