컴퓨터는 인간이 말하는 문자를 이해하지 못합니다.
컴퓨터가 이해할 수 있는 유일한 언어인 숫자와 문자를 연결해 만든 것이 ASCII 입니다.
그러나 세상에는 다양한 문자열이 있습니다.
ASCII 만으로는 문자열을 다 표현할 수 없어 한국에 있는 컴퓨터와 미국에 있는 컴퓨터가 소통을 할 수 없었습니다.
이를 해결하기 위해서 나온게 Unicode 입니다.
이 이야기를 왜 하냐면,
Python2 와 Python3 는 문자열을 다루는 데에서 차이가 있기때문입니다.
Python2 에서는 ASCII가 디폴트 인코딩 방법입니다.
그러나 앞서 말했듯이, ASCII 로는 한글을 표현할 수 없습니다.
그래서,
from __future__ import unicode_literals
print("하이루")
위와 같은 코드 처리를 해주곤 했습니다.
(u를 입력하지 않아도, 문자열을 기본적으로 unicode 타입으로 취급하는 패키지입니다)
Python3 에서는 UTF-8이 디폴트 인코딩 방법입니다.
사용자가 무언가 따로 설정하지 않아도 한글을 사용할 수 있습니다.
모든 문자열은 유니코드로 처리됩니다.
"안녕" , u"안녕"이 동일하게 처리됩니다.
즉,
Python2에서의 str 타입은 Python3에서는 byte 타입에 해당하고
Python2에서의 unicode 타입은 Python3에서는 str 타입에 해당하는 것입니다.
이 게시물은 COURSEA - Python 에서 데이터 베이스 사용하기 강의를 듣고 작성했습니다.
<참고 자료>
https://mino-park7.github.io/effective%20python%20study/2018/09/06/betterway3-bytes-str-unicode/
'프로그래밍 언어 > python' 카테고리의 다른 글
파이썬 물결표 ~ 의미 (python tilde) (0) | 2022.01.04 |
---|---|
파이썬 막대그래프가 히스토그램처럼 붙어있는 현상 (0) | 2021.10.02 |