인코딩과 디코딩
- 문자를 바이너리로 바꾸는 작업을
인코딩
- 반대로 바이너리를 문자로 바꾸는 작업을
디코딩
이라고 함.
- 메모리에 저장되는 형태가 문자집합마다 달라짐
ASCII
- 하나의 문자를 1Byte로 표현하는 문자 집합
- 1Bit는 Parity Bit
- 128개의 문자 표현 가능
- extended ASCII-> 표현 가능 문자가 256개로 늘어남
EUC -KR
- 한글은 초성, 중성, 종성으로 이루어져있음
- ASCII로는 표현 불가능
- Extended Unix code -Korea 를 사용
- KS X 1003 + KS X 1001이 합쳐진 문자 집합
- 최대 2Byte. 영문자와 특문은 1Byte만, 한글 표현 시 2Byte 모두 사용
- 복잡한 문자는 이상하게 출력될 수 있음
Unicode
- 국제적 표준
- 모든 국가의 문자를 표현하기 위한 문자 집합
- 기본 인코딩으로 사용 됨
UTF-8
- 가장 많이 사용(코딩할때도 마찬가지)
- 코드 포인트를 인코딩할 때, 1~4Byte 가변 크기 사용
- 기본 아스키코드에 있는 문자는 1Byte, 한글 등은 2~3Byte로 인코딩하고 복잡한 문자는 4Byte로 인코딩
UTF-16
UTF-32
완성형과 조합형
완성형
- 음절 단위로 완성된 글자 하나마다 고유한 정수 할당
- 글자 단위 처리로 쉽게 처리
- 문자열 길이 계산이나 특정 위치 접근에 용이
- 모든 문자를 표현할 수 있는 것은 아니나, 실생활에서 쓰는 문자는 다 사용 가능
- i.e) EUC-KR
조합형
- 초성, 중성, 종성을 조합해 하나의 글자를 인코딩
- 초,중,종마다 별도의 숫자가 할당되어 있음
- 한글로 표현 가능한 모든 글자 표현 가능
- 상대적으로 복잡하고 느리다.
- 문자에 할당되어있는 고유의 값들을 유니코드에서
Code Point
라고 한다.