[python] Python3에서 ‘이진 문자열’을 일반 문자열로 변환하는 방법은 무엇입니까?

예를 들어 다음과 같은 문자열이 있습니다 (return value of subprocess.check_output) :

>>> b'a string'
b'a string'

내가 한 일에 관계없이 항상 b'문자열 앞에 성가신 것으로 인쇄됩니다 .

>>> print(b'a string')
b'a string'
>>> print(str(b'a string'))
b'a string'

누구나 일반 문자열로 사용하거나 일반 문자열로 변환하는 방법에 대한 아이디어가 있습니까?



답변

그것을 해독하십시오.

>>> b'a string'.decode('ascii')
'a string'

문자열에서 바이트를 얻으려면 인코딩하십시오.

>>> 'a string'.encode('ascii')
b'a string'


답변

falsetru 의 답변이 효과 가 없다면 다음 을 시도해보십시오.

>>> b'a string'.decode('utf-8')
'a string'


답변

라이브러리의 oficial encode()decode()문서를 참조하십시오 codecs. utf-8함수의 기본 인코딩이지만 Python 3에는 또는 과 같은 몇 가지 표준 인코딩 이 있습니다.latin_1utf_32


답변