반응형
ASCII 방식 : 초기에 문자를 표현하던 대표 방식
1 바이트에 모든 문자를 표현 ( 1비트는 checksum으로 제외, 7비트 (128글자)로 문자표현)
한글이나 한자는 2개이상의 특수문자를 합쳐서 표현 -> 비정상적
유니코드 방식 : 2~4 바이트의 공간에 여유있게 문자를 할당
1바이트로 표현가능한 영문자도 2바이트 이상의 공간 사용 -> 메모리 낭비
---> UTF-8 : 유니코드의 가변 길이 문자 인코딩 방식으로 효율적으로 인코딩
UTF-8
유니코드 값에 따라 가변적으로 바이트를 결정하여 불필요한 공간 낭비를 절약
값이 128 이하라면 1바이트로 표현
영문, 숫자는 ASCII 문자 그대로 1바이트에 표현 가능
한글의 UTF-8 인코딩 값은 모두 각 문자당 3바이트 차지
BUT
파이썬 3 부터 유니코드로 모든 문자열로 표현하지만 내부적으로 UTF-8 인코딩을 사용하지는 않음
- >문자에 인덱스로 빠르게 접근하기 위해서는 고정길이 인코딩방식이 필요
- Latin-1 인코딩(고정 1바이트 인코딩 - 모두 ASCII 범위 내에 있는 문자열),
- UCS-2(고정 2바이트 인코딩 - 대부분의 문자열),
- UCS-4 (고정 4바이트 인코딩 - 특수기호, 그림 이모티콘, 희귀 언어 등 포함된 문자열)
반응형