>  기사  >  백엔드 개발  >  python2와 python3 문자열의 차이점

python2와 python3 문자열의 차이점

(*-*)浩
(*-*)浩원래의
2019-06-28 14:54:322303검색

Python2에서는 문자열이 국제 문자 집합과 유니코드 인코딩을 완전히 지원할 수 없습니다. 이 제한을 해결하기 위해 Python 2는 유니코드 데이터에 대해 별도의 문자열 유형을 사용합니다. 유니코드 문자열 리터럴을 입력하려면 첫 번째 따옴표 앞에 'u'를 추가하세요. Python 2의 일반 문자열은 실제로 인코딩된(유니코드가 아닌) 바이트 문자열입니다. Python3에서는 이 접두사 문자를 추가할 필요가 없습니다. 그렇지 않으면 모든 문자열이 기본적으로 이미 유니코드로 인코딩되어 있기 때문에 구문 오류가 발생합니다.

python2와 python3 문자열의 차이점

하지만 python3에는 문자열이 하나 더 있습니다(권장 학습: Python 비디오 튜토리얼)# 🎜 🎜#

type(b'132') => byte型
python2에서 이와 같이 작성하면 오류가 보고됩니다

그러므로 분명히 디코드와 인코딩의 사용에는 큰 차이가 있을 것입니다

In Python2 디코드는 str 유형을 유니코드 유형으로 변환하는 것입니다


python3의 디코드는 바이트 유형을 str 유형으로 변환하는 것입니다

Python3을 예로 들어보세요:

src = ‘你好世界’
# 🎜 🎜#이때 str은 str 유형입니다. 바이트 유형으로 변환해야 하는 경우 다음을 사용할 수 있습니다.
src =  src.encode('utf-8')

이때 src는 이미 바이트 유형입니다. 다시 str로 변환하고 직접 사용하세요:

src = src .decode()

또한 python3의 open 함수는 인코딩 매개변수를 추가하고 기본값은 utf-8입니다. 즉, 열린 파일을 읽거나 쓸 때입니다. 핸들에 따라 유니코드 형식이 포함된 str 문자만 수신됩니다.

이때 바이너리 파일을 전달하면 오류가 보고됩니다. 예:

with open('a.bin', 'w') as f:
f.write('xxx')

바이너리 파일을 읽고 쓰려면 다음을 수행해야 합니다. 열기 방법을 'wb' 또는 'rb'로 지정하세요

또한 웹페이지를 크롤링할 때 웹페이지가 제대로 표시되지 않는 경우 콘텐츠를 트랜스코딩해야 합니다.

더 많은 Python 관련 기술 기사를 보려면

Python Tutorial

열을 방문하여 알아보세요!

위 내용은 python2와 python3 문자열의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.