Dolphins의 HelloWorld

Python의 문자표현 본문

python/python 심화

Python의 문자표현

돌핀's 2018. 7. 9. 21:59

ASCII 코드 / 유니코드


아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기반한다.

-> 메모리에서 8비트를 차지한다.


파이썬에서 ord()를 사용하면 ASCII문자에 대응하는 숫자를 알 수 있다.


print(ord(' ')) #결과 : 32

print(ord('!')) #33

print(ord('A')) #65


하지만 ASCII는 영문자 외에 다른 문자를 표현하기에는 부족하며 그래서 발전한것이 Unicode이다.


이미 Unicode는 많은 문자를 포함하고 있으며, 여전히 다른 새로운 문자를 저장할 여력이 있다.


하지만 문제는 유니코드를 네트워크를 전송할 때 용량이 과도하게 크다는 점이다.


때문에 유니코드를 압축한 UTF-8을 사용한다. 

(UTF-32의 용량 : 4Bytes, UTF-16의 용량 : 2Bytes, UTF-8의 용량 ; 1-4Bytes (동적이며 ASCII코드와 겹침)



Python 3 에서 문자열은 유니코드 형식으로 다루어진다.


네트워크를 통해 데이터를 주고받을 때는 데이터를 변환해야하는 것이 필요한데


예를들어 우리는 종종 데이터를 전송하기 전에 UTF-8 byte 방식으로 인코딩을 해주며

데이터를 전송 받았을 때는 유니코드 형태로 디코딩한다.



'python > python 심화' 카테고리의 다른 글

urllib 와 Beautiful soup  (0) 2018.07.13
lambda, map reduce  (0) 2018.07.10
Enumerate,Zip  (0) 2018.07.10
Split, Join, List comprehensions  (0) 2018.07.10
Comments