-
컴퓨터에서의 문자 표현프로그래밍/기록, 개념, 용어 2020. 5. 28. 22:53반응형
ASCII
- 미국에서 나온 표준(ASCII, American Standard Code for Information Interchange)
- 0~255, 8비트 모두를 사용
- UTF-8 인코딩과 호환 됨
MULTIBYTE
- 1바이트에 담을 수 없는 언어들을 위해 나옴
- 가변 크기
- 문자를 2바이트 내에 표현
- 아스키에 있는 문자들은 1바이트로 표현
- 언어마다 시작 비트 위치가 다르다
MULTIBYTE - EUC(Extended Unix Code)
- 아스키 외 문자를 지원하기 위한 MULTIBYTE 문자 인코딩.
- EUC-XX 네이밍(EUC-KR)을 가진다.
- 각 언어권 별 코드 페이지를 가지고 있으며, 코드 페이지가 매칭 되어야 정상적으로 표기 됨
- 다른 나라 언어의 게임을 하면 꿹뗅 같은 표현이 나왔던 이유
MULTIBYTE의 한계
한 번에 여러 언어권을 표현 못함. 코드 페이지가 교체되는 방식이므로.
UNICODE
- 전세계 문자를 일관되게 표현할 수 있는 규격
- 세상 모든 문자에 번호를 붙임
- 인코딩 방식에 따라 비트패턴이 다를 수 있음
- 인코딩으로는 UTF8, UTF16, UTF32가 있다.
- 각 인코딩은 값을 저장하는 방법에만 차이가 있다.
UNICODE - UTF-8
- UTF8은 ASCII를 100% 호환 함. 그러나 ASCII는 UTF8을 호환할 수 없음.
- 한 문자 당 8~32비트(가변 비트 수)
- 메모리를 적게 씀. 동양권 문자를 제외한 대부분의 문자가 1~2바이트로 내로 표현.
- 첫 번째 바이트의 패턴으로 한 문자가 몇 바이트로 이루어졌는지 파악할 수 있다.
UNICODE - UTF-16
- ASCII와 호환되지 않음.
- UCS-2와 호환.
- 한 문자 당 16~32비트(가변 비트 수)
- 한, 중, 일 문자 표현이 2바이트로 가능.
UNICODE - UTF-32
- ASCII와 호환되지 않음.
- 한 문자 당 32비트. 모든 문자가 같은 비트 수를 사용.
- 하나의 캐릭터 엘리먼트가 Unicode point와 1:1로 대응 됨. 그러므로, 인코딩이 필요 없음.
- 문자 단위 랜덤 엑세스 가능.
과거의 UNICODE ENCODING들
c/c++은 문자는 char형으로 ASCII만 썼었다가, 그 이후 wchar_t가 나왔다. wchar_t는 플랫폼에 따라 바이트 크기가 다름(2~4bytes)
UCS-2
- UTF-16의 전신
- 최초의 유니코드 인코딩
UCS-4
- UTF-32의 전신
- UCS-2에 문제를 느껴(2바이트 만으론 모든 표현이 불가능) 4바이트면 되겠다는 생각으로 나온 인코딩
반응형'프로그래밍 > 기록, 개념, 용어' 카테고리의 다른 글
비교문 최적화에 도움 되는 개념. 드 모르간 법칙(De Morgan's laws) (1) 2020.07.03 Idempotent Key (0) 2020.06.14 verbose 모드 (0) 2018.12.08 poll api 이벤트들 (0) 2018.04.18 난수 동기화 (0) 2018.02.06