이론

문자 인코딩(character encoding)과 charset

algml0703 2022. 6. 16. 13:24
반응형

문자인코딩 ( character Encoding )

컴퓨터는 기본적으로 0과 1과 같은 바이너리 형태의 정보만을 인식할 수 있다. 그렇기 때문에 일반적으로 사용자가 사용하는 문자나 기호들을 컴퓨터가 인식할 수 있도록 변환해주는 과정이 필요한데, 이를 바로 문자 인코딩이라 한다. 

반대로 0과  1로 이루어진 컴퓨터 신호를 사람이 인식할 수 있는 정보로 변환하여 주는 것을 디코딩이라 한다.

 즉 문자, 숫자, 기호 등을 사전에 약속된 규칙에 따라 컴퓨터가 인식할 수 있는 0과 1과 같은 숫자 신호로 변환하는 것을 의미한다. 그리고 여기서 사전에 약속된 규칙들의 집합을 Character Set 이라고 한다. 다양한 인코딩 방식이 존재하기 때문에 문서 간에 인코딩 방식이 일치하지 않으면 컴퓨터가 문자를 사용자의 본래 의도대로 인식하지 못하는 결과가 나타나기도 하고, 반대로 컴퓨터 신호를 사람이 인식할 수 있는 정보로 변환하는 디코딩 과정이 제대로 이루어지지 않아 글자가 깨지게 나타나는 등의 문제가 발생할 수 있다.

Character set = 코드표

charset이라고도 하며 문자 인코딩을 하기 위해 사전에 정해진 규칙들의 모음이라고 볼 수 있다. ASCII, 유니코드 등이 Charset의 일종이다. Character Set은 초기에는 ASCII라는 영문 위주의 문자 인코딩 방식으로 시작하였으나, 더욱 많은 문자를 표현하기 위해 계속해서 발전하였다. 아래는 아스키 코드 표이다. 

ASCII Charset    출처 : https://www.ascii-code.com

위의 표를 통해 보면 숫자 6은 컴퓨터 체계에서는 00100110으로 인식하며, 문자 A는 01000001로 인식한다. 이렇게 숫자 6이나 문자 A가 00100110, 01000001로 변환되는 과정을 인코딩이라 하고, 반대로 00100110이 6으로, 01000001이 A로 변환되는 과정을 디코딩이다.

ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)

아스키로 불리우는 ASCII는 최초의 문자 인코딩의 한 종류로, 영문을 컴퓨터 신호로 변환하는데 적합한 문자 인코딩이다.1byte로 영문자, 숫자, 특수문자 등을 표현한다.

유니코드 (UNICODE)

각기 다른 인코딩 방식으로 인한 호환성 문제 극복을 위해 나타난 것으로 전세계적으로 사용되는 모든 문자 집합을 하나로 모아 만들어진 charset이 바로 유니코드이다. 표준 인코등 UTF-8과 UTF-16이 대표적이다.

utf-8은 글자와 코드가 1대 1로 매핑되어 있는 코드표인 유니코드를 인코딩하는 방식이다.

utf-8은 현대에 가장 일반적으로 사용되는 인코딩 방식으로 html 문서에서 쉽게 발견할 수 있다. 아래의 이미지를 보면                    <meta charset="UTF-8">로 지정하여 준 것을 확인할 수 있다.

또한 자바의 경우 UTF-16 인코딩을 사용한다.

출처 

https://limvo.tistory.com/7

https://jeongdowon.medium.com/unicode%EC%99%80-utf-8-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-b6aa3f7edf96

 

반응형