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