Theo tài liệu, trong Python 2.7.3, shlex sẽ hỗ trợ UNICODE. Tuy nhiên, khi chạy mã bên dưới, tôi nhận được: UnicodeEncodeError: 'ascii' codec can't encode characters in position 184-189: ordinal not in range(128)
shlex.split vẫn không hỗ trợ unicode?
Tôi có làm gì sai không?
import shlex
command_full = u'software.py -fileA="sequence.fasta" -fileB="新建文本文档.fasta.txt" -output_dir="..." -FORMtitle="tst"'
shlex.split(command_full)
Các lỗi chính xác là như sau:
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)
Đây là sản lượng từ mac của tôi sử dụng python từ macports. Tôi nhận được chính xác cùng một lỗi trên máy Ubuntu với "bản địa" python 2.7.3.
Nó không ủng hộ việc 'unicode() 'đối tượng; nó không thể xử lý bất cứ điều gì trừ các ký tự ASCII ngay cả khi sử dụng đối tượng 'unicode()' ngay bây giờ. –
@MartijnPieters có phải là lỗi hoặc hành vi dự kiến không? Tôi không thể tìm thấy bất kỳ tham chiếu nào đến hạn chế trong tài liệu – petr
Lỗi đã biết, tôi muốn nói, xem [vấn đề này] (http://bugs.python.org/issue742290). –