문자 집합과 인코딩
- 문자집합
- 인코딩
- 문자를 0과 1로 변환해 컴퓨터가 이해할 수 있는 정보로 변환하는 과정이다.
- 디코딩
- 0과1을 사람이 이해하는 문자로 변환하는 과정이다.
아스키 코드
- 초창기 문자집합이다.
- 7비트로 표현할 수 있는 문자는 총 128개이다.
- 표현 가능한 수가 적기 때문에 한글을 표현할 수 없다.
- 확장 아스키도 나왔지만 그래도 256개로 요전히 적다.
ECU-KR
- 한글 인코딩은 두 종류가 있다.
- 완성형과 조립협인코딩이 있다.
- 완성형은 하나의 글자에 고유한 코드를 부여하고
- 조립형은 초성, 중성, 종성에 해당하는 코드를 부여하고 조립하는 형태다.
- ECU-KR은 KS X 1001, KS X 1003 이라는 문자 집합 기반으로 하는 완성형인코딩 방식이다.
- 한글은 각 글자에 2바이트가 부여되어 16비트가 필요하다.
한글깨짐 문제
- 2350개로 표현할 수 있지만 그럼에도 모든 한글 조합을 표현할 수 없다.
- 그래서 쀍 같은 글자는 깨진다.
- 이런 문제를 해결하기 위해 Microsoft의 CP949라는 EUC-KR 확장판이 나왔다.
- 다만 이것도 다 표현할 수 없다.
인코딩의 문제점
- ECU-KR처럼 모든 언어별로 인코딩을 해야한다면 프로그램에서 나라별 인코딩언어를 모두 알아내야 한다.
- 하지만 통일된 표준 인코딩 방식이 있다면 번거로움이 없을것이다.
유니코드와 UTF-8
- 유니코드는 대부분의 나라의 문자, 특수문자, 이모티콘도 표현가능한 문자집합이다.
인코딩 방식
- 아스키나 EUC-KR은 글자에 부여된 값으로 인코딩을 한다.
- 유니코드는 부여된 값을 활용해 여러 방법으로 인코딩 한다.
- 이 방법들 중 UTF-8, UTF-16, UTF-32등이 있다.
UTF-8
- 1바이트부터 4바이트까지의 인코딩 결과를 만든다.
- 즉 값이 1바이트가 될 수 도 있고 2, 3, 4 바이트 중 될 수 있다는 것이다.
- 이는 유니코드 문자에 부여된 값에 따라 결정된다.
댓글남기기