//구글콘솔 광고 추가가
문자 집합과 인코딩

  • 문자 집합(Character set) : 컴퓨터가 이해(표현)할 수 있는 문자의 모음
  • 인코딩(encoding) : 코드화하는 과정, 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정.
  • 디코딩(decoding) : 코드를 해석하는 과정, 0과 1로 표현된 문자 코드로 문자로 변환하는 과정, 인코딩의 반대

 

대표적이고, 대중적인 문자 집합, 인코딩 방법인
" 아스키 코드 "
  • 초창기 문자 집합 중 하나.
  • 알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자.
  • 7비트로 하나의 문자 표현(실제로는 8비트를 쓰지만 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)) == 0부터 127개의 아스키코드가 있으며 총개수는 2의 7승인 128개.
  • A는 65로 인코딩, a는 97로 인코딩.
  • 장점 : 간단한 인코딩.
  • 단점 : 한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가 - 아스키 코드는 7비트로 하나의 문자를 표현하기에 128개보다 많은 문자를 표현할 수 없음. 8비트 확장 아스키가 등장했지만, 여전히 부족함.

한글 인코딩: 완성형 인코딩(ex: 남) vs 조합형(ex: ㄴ + ㅏ + ㅁ) 인코딩

  • 초성, 중성, 종성의 조합으로 이루어진 한글은 전체를 하나로 묶어 글자 하나를 인코딩할지(완성형 인코딩), 다 나눠서 각각 인코딩할지(조합형 인코딩)로 나뉨.
  • EUC-KR : KS X 1001 KS X 1003 문자집합 기반의 한글 인코딩 방식, 완성형 인코딩이며 글자 하나하나에 2바이트 크기의 코드 부여(dencode.com에서 테스트확인 가능). 하지만 모든 한글을 표현할 순 없음.
하지만 모든 한글을 표현할순 없다. >> 그래서 만들어진 유니코드 문자집합
  • 이걸 해결 하기 위해 통일된 문자 집합인 유니코드 문자 집합이 만들어짐. - 한글, 영어, 화살표와 같은 특수 문자들이 포함되어 있으며 현대 문자 표현에 있어 매우 중요한 위치에 있다.
  • 유니코드의 인코딩 방식은 utf-8, utf-16, utf-32 ...이 있음. 여기서 utf의 뜻은 Unicode Transformation Format의 줄임말로 유니코드 인코딩 방법이란 뜻임. - 가장 대중적인 방식인 utf-8 인코딩 : 가변 길이 인코딩으로 인코딩 결과가 1바이트 ~ 4바이트가 될 수 있음(인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다름.).
  •  https://onlineutf8tools.com/convert-utf8-to-binary직접 눈으로 확인 가능.

예전에 회사에서 프로젝트 안에서 가상 키보드를 띄워서 아이디나 닉네임을 저장하는 부분을 구현한 적이 있었는데 그때도 한글 키보드를 구현하기 어려워서 시간을 많이 쏟았던 기억이 있다. 지금의 공부를 하고나서 구글링 했을때 나왔던 방법 이해했으면 이해하기 더 쉬웠을 거란 생각이 든다. 

 

++ 추가로 한글 인코딩에 대해 더 자세하게 나온 블로그

https://www.vbflash.net/192

 

참고 : 인프런 < 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제 >

728x90

+ Recent posts