1 분 소요

문자 집합과 인코딩

  • 문자집합
    • 컴퓨터가 인식할 수 있는 문자의 모음이다.
  • 인코딩
    • 문자를 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 바이트 중 될 수 있다는 것이다.
  • 이는 유니코드 문자에 부여된 값에 따라 결정된다.

댓글남기기