Python3 문자 코드 정보

정보계의 비망록적인 것을 쓰려고 생각하고 투고해 보았다.

…하지만, 쓰는 도중에 다른 일하기 시작해 버렸으므로, 우선 미완성품을 투고.
여유가 있을 때 코드라든지 추가할까…

소개



이번에는 Python3의 문자 코드에 대해 정리해 보겠습니다.

최근 다른 사이트의 데이터를 가져와 성형하는 작업을 해봤지만,
request로 가져올 때나, 파일 기입할 때에 Error나 문자 부상…

다양한 사이트를 낚아도 잘 모르기 때문에 자세한 사람에게 물어 보았습니다.
이외라고 깨끗이 한 생각이 들기 때문에, 여기에 써 두려고 생각한다.

문자 코드란?



우선 문자 코드란 무엇인가라고 하는 사람도 있다고 생각해, 간단하게 써 본다.

단적으로 말하자면

하나의 문자에 대해 하나의 이진수가 할당되는 것



라고 생각합니다…

한 문자에 대해 하나의 일련 번호가 할당되고,
그 일련 번호로, 어느 문자로 변환할까를 결정한 것.

Python3의 문자 코드는??



그렇다면 Python3의 문자 코드는 무엇을 사용하고 있습니까?

전체를 그림으로 하면 이런 느낌.


이것을 하나씩 설명해 나간다.

Python3 문자 정보



Python3의 변수 등에 저장된 문자는 유니 코드.

PythonConsole
>>>'あ' == u'\u3042'
True

Python2라고 string형이라든지 여러가지 있었던 것 같지만,
적어도 Python3의 문자는 이것으로 통일되어있는 것 같습니다.

.py 파일의 문자 코드



파이썬 코드가 작성된 파일은 UTF-8로 작성되었습니다.

시도에 다음과 같은 파일을 만들고

test_python_file.py
test = "こんにちは世界"

Windows의 Console(Shift-jis)로 출력해 보면

콘솔(Windows)
>type test_python_file.py
test = "縺薙s縺ォ縺。縺ッ荳也阜"

.py 파일은 UTF-8로 작성되었으므로 물론 문자가 깨집니다.

파이썬 프로그램으로 만든 .txt 파일 등



이것에 대해서는, 조금 복잡.

사용하고 있는 환경(OS)에서 다른 것 같다.

Windows -> Shift-jis
Mac, Linux -> UTF-8

요약



전체적으로 말하고 싶은 것은 다음과 같습니다.


환경
문자 코드


Python3 문자
유니코드

.py 파일 코드
UTF-8

출력 파일 등
Windows : Shift-jis, Mac&Linux : UTF-8 (환경에 따라 다름)


이 내부 구조를 알고 있으면, 문자 코드의 Error라고도 대처하기 쉽다고…

잘못되면 알려 주시면 감사합니다!

좋은 웹페이지 즐겨찾기