1
是否可以訪問原始argv元素二進制內容?作爲python3中的字節訪問命令行參數
$ python3 -c'import sys;print(sys.argv);' `echo -ne "\xff\x80\x00\xff"`
['-c', '\udcff\udc80\udcff']
是否可以訪問原始argv元素二進制內容?作爲python3中的字節訪問命令行參數
$ python3 -c'import sys;print(sys.argv);' `echo -ne "\xff\x80\x00\xff"`
['-c', '\udcff\udc80\udcff']
可以得到的argv含量的不同作爲字節如下:
#!/usr/bin/python3
import sys
arg1_bytes = sys.argv[1].encode(sys.getfilesystemencoding(), 'surrogateescape')
來源:PEP 383 - Non-decodable Bytes in System Character Interfaces,經由answer on "Command-line arguments as bytes instead of strings in python3";另請參閱answer on "sys.argv as bytes in Python 3k"
請注意,這不是文件名編碼問題,如http://stackoverflow.com/questions/3557830/command-line-arguments-as-bytes-instead-of-strings-in-python3或http://stackoverflow.com/questions/6981594/sys-argv-as-bytes-in-python-3k我沒有任何文本編碼問題。這不是關於文字。 – Nope 2014-10-22 09:01:55