문자 집합: 아스키 코드와 유니코드

   Cheat Sheet   

  • 문자 집합: 컴퓨터가 인식할 수 있는 문자의 모음
  • 문자 인코딩: 문자 → 0과 1로 변환
  • 문자 디코딩: 0과 1 → 문자로 변환
  • 아스키 코드 (ASCII): 초창기 문자 집합, 7비트로 하나의 문자 표현 → 최대 128개의 문자 표현
  • EUC-KR: 한글 인코딩하는 완성형 인코딩 방식, 글자 하나에 2바이트 부여 → 4자리 십육진수로 표현
    • 완성형 (강) vs. 조합형(ㄱ+ㅏ+ㅇ) 인코딩 방식
  • 유니코드: 여러 나라의 문자들을 표현할 수 있는 표준 문자 집합, 다양한 인코딩 방식 사용
    • 대표적으로 UTF-8: 1바이트~4바이트까지 가변 길이의 인코딩 방식

 

문자 집합과 인코딩

  • 문자 집합: 컴퓨터나 인식할 수 있는 문자의 모음
  • 문자 인코딩: 문자를 0과 1로 변환
    • 사람이 이해할 수 있는 문자를 0과 1로 이루어진 문자 코드로 변환
  • 문자 디코딩: 0와 1을 문자로 변환

 

아스키 코드 (ASCII)

  • 아스키는 초장기 문자 집합 중 하나
  • 영어 알파벳과 아라비아 숫자, 일부 특수 문자를 포함함
    • `Backspace`, `Space` 같은 제어 문자도 포함됨
  • 아스키 문자는 7비트로 하나의 문자를 표현 → 최대 128개의 문자 표현
    • 실제로는 8비트를 사용하지만, 8비트 중 1비트는 패리티 비트(Parity Bit)로, 오류 검출을 위해 사용됨
  • 아스키 문자는 아스키 코드로 인코딩됨
    • 아스키 코드: 아스키 문자에 일대일로 대응되는 고유한 수
  • 128개보다 많은 문자를 표현하기 위해 8비트의 확장 아스키(Extended ASCII)가 등장하기도 했지만 표현 가능한 문자의 수가 여전히 턱없이 부족함
  • American Standard Code for Information Interchange

 

EUC-KR

  • EUC-KR은 완성형 인코딩 방식
    • 완성형 인코딩: 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여 (예: 강, 민, 철)
    • 조합형 인코딩: 초성, 중성, 종성에 해당하는 코드를 조합하여 하나의 글자 코드를 완성 (예: ㄱ+ㅏ+ㅇ)
  • 글자 하나에 2바이트 크기의 코드를 부여 → 16비트 → 4자리 십육진수로 표현됨
  • 모든 한글을 표현할 수 없고 (예: 쀍), 언어별로 인코딩 방식을 다르게 해야 하는 문제 발생

 

유니코드 (Unicode)

  • 유니코드는 여러 나라의 문자들을 광범위하게 표현할 수 있는 표준 문자 집합 → 가장 많이 사용
    • U+는 십육진수로 유니코드를 표현할 때 사용하는 표기 방법
  • 유니코드는 아스키 코드나 EUC-KR처럼 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고, 이 값을 다양한 방법으로 인코딩함
  • 유니코드 문자에 부여된 값을 인코딩하는 방식: UTF-8, UTF-16, UTF-32
  • Unicode Transformation Format

 

UTF-8

  • 가장 대중적인 인코딩 방식
  • 1바이트~4바이트까지 가변 길이의 인코딩 결과를 만들어 냄
  • UTF-8로 인코딩한 결과가 몇 바이트가 될지는 유니코드 문자에 부여된 값의 범위에 따라 결정

 

출처: [2-2] 0과 1로 문자를 표현하는 방법

 

혼자 공부하는 컴퓨터 구조+운영체제 - 예스24

혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서이 책은 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지

www.yes24.com