파이썬 3 바이트 문자열 변수를 일반 문자열로 변환하려면 어떻게 해야 합니까?
XML 전자 메일 첨부 파일에서 읽은 적이 있습니다.
bytes_string=part.get_payload(decode=False)
페이로드는 제 변수 이름에서 알 수 있듯이 바이트 문자열로 제공됩니다.
저는 이 문자열을 조작할 수 있는 사용 가능한 문자열로 만들기 위해 추천하는 Python 3 접근법을 사용하려고 합니다.
예는 다음과 같습니다.
str(b'abc','utf-8')
어떻게 적용할 수 있습니까?b
(바이트) 내 변수에 대한 키워드 인수bytes_string
권장되는 접근 방식을 사용하시겠습니까?
제가 시도한 방법은 효과가 없습니다.
str(bbytes_string, 'utf-8')
당신은 마지막 줄에서 거의 정확하게 그것을 가지고 있었습니다.너는 원한다
str(bytes_string, 'utf-8')
의 종류 때문에bytes_string
이라bytes
의 종류와 같은b'abc'
.
불러decode()
에서bytes
인스턴스(instance)를 생성하여 인코딩할 텍스트를 가져옵니다.
str = bytes.decode()
어레이에서 UTF8이 아닌 문자를 필터링(스킵)하는 방법은 무엇입니까?
@uname01의 게시물과 OP에서 이 의견을 처리하려면 다음 오류를 무시하십시오.
코드
>>> b'\x80abc'.decode("utf-8", errors="ignore")
'abc'
세부 사항
문서에서 동일한 것을 사용하는 더 많은 예가 있습니다.errors
매개변수:
>>> b'\x80abc'.decode("utf-8", "replace")
'\ufffdabc'
>>> b'\x80abc'.decode("utf-8", "backslashreplace")
'\\x80abc'
>>> b'\x80abc'.decode("utf-8", "strict")
Traceback (most recent call last):
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0:
invalid start byte
errors 인수는 인코딩 규칙에 따라 입력 문자열을 변환할 수 없는 경우의 응답을 지정합니다.이 인수의 법적 가치는 다음과 같습니다.
'strict'
(a를 포함)UnicodeDecodeError
예외),'replace'
(사용)U+FFFD
,REPLACEMENT CHARACTER
), 또는'ignore'
(유니코드 결과에서 문자를 제외하기만 하면 됩니다.
업데이트됨:
아무것도 가지지 않는 것
b
첫 번째와 끝에 있는 인용문변환 방법
bytes
현악기에서 볼 수 있듯이, 심지어 이상한 상황에서도.
코드에 인식할 수 없는 문자가 있을 수 있습니다.'utf-8'
인코딩, 추가 매개 변수 없이 str만 사용하는 것이 좋습니다.
some_bad_bytes = b'\x02-\xdfI#)'
text = str( some_bad_bytes )[2:-1]
print(text)
Output: \x02-\xdfI
덧붙이면'utf-8'
매개 변수, 이 특정 바이트에 대해 오류를 수신해야 합니다.
PYTHON 3 표준에서 언급하고 있듯이,text
걱정하지 않아도 지금은 utf-8에 있을 겁니다.
언급URL : https://stackoverflow.com/questions/31058055/how-do-i-convert-a-python-3-byte-string-variable-into-a-regular-string
'programing' 카테고리의 다른 글
angular-cli 여기서 is webpack.config.js 파일 - new angular6은 ng 배출을 지원하지 않습니다. (0) | 2023.05.17 |
---|---|
초점설정에 합니다.초점설정에 합니다.초점설정에 합니다. (0) | 2023.05.17 |
iPad 및 iPhone용 스타일 입력 버튼 (0) | 2023.05.17 |
이미지 URI 소스 및 데이터 바인딩 (0) | 2023.05.17 |
코드 실행 시간 측정 (0) | 2023.05.12 |