본문 바로가기
카테고리 없음

유니코드와 UTF-8

by newnu 2021. 3. 19.
반응형

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바이트 인코딩 - 특수기호, 그림 이모티콘, 희귀 언어 등 포함된 문자열)

반응형