본문 바로가기
언어/기타

ASCII 코드 / 유니코드 / 인코딩, 디코딩 / UTF-8, EUC-KR

by 넬준 2021. 12. 3.

ASCII 코드

알파벳 대소문자 - 52문자

숫자 0~9 - 10문자

특수문자 - 66문자

 

총 위 128개의 문자와 예비문자 128개를 정수(0~255)와 1:1로 매칭한 것이 ASCII 코드이다.

256개 = 2^8 -> 즉, 8bit = 1byte면 서로 다른 알파벳, 숫자, 특수문자 (+예비문자)까지 저장하여 사용할 수 있었다.

 

유니코드

하지만 ASCII코드만으로는 다른 나라의 언어를 표현할 수 없었다. 

1byte로는 부족하니 여러 byte를 사용하여 하나의 문자를 표현하고자 했다.

이와 같은 이유로 전 세계 언어를 모두 매칭, 정의할 수 있는 국제 표준 코드인 유니코드가 등장했다.

 

인코딩 / 디코딩

 

인코딩 : 사람이 인지할 수 있는 형태의 데이터를 규칙에 의해 컴퓨터가 사용하는 0, 1로 변환하는 과정

           즉, 사람이 인지하지 못하고 컴퓨터가 이해할 수 있게 바꿔주는 과정

           간단히 말하면, 문자열을 바이트형식으로 변환

 

디코딩 : 인코딩과 반대, 사람이 이해할 수 있도록 바꿔주는 것

           바이트형식을 문자열로 변환

 

 

문자열 ab를 입력하여 상대방에게 보내는 상황을 생각해보자.

 

인코딩

1) 우리가 입력한 ab를 컴퓨터가 실제로 이해할 수 없다. 컴퓨터는 0과 1만 이해할 수 있기 때문이다.

따라서 ab라는 문자열을 컴퓨터 메모리 상에 바이트 형식으로 바꾸어

유니코드 표에서 각 문자에 매칭되어 있는 숫자인 97 98을 규칙에 맞게 전송한다. 

 

디코딩

2) 상대방 컴퓨터에서 읽을 땐 다시 문자열 ab형태가 되어야 한다.

바이트 형식으로 된 97, 98을 받고서 유니코드 표에서 매칭된 문자 a, b로 변환 후 문자열 ab로 보여준다.

 

UTF-8

UTF-8은 유니코드를 인코딩하는 방식 중 하나이다. 전 세계에서 가장 많이 쓰이는 방식이다.

즉, 유니코드 값을 컴퓨터가 이해하는 형식으로 변환하는 방식 중 하나이다.

가변 길이 문자 인코딩 방식으로 문자 종류에 따라 길이가 다르다.

ASCII문자는 1byte, 나머지 문자들은 4byte까지 사용한다.

그 중 한글은 3byte를 사용한다.

 

다른 국가에서 한글 언어팩이 설치되지 않았어도 한글 표현이 가능하고,

우리 또한 같은 방식으로 다른 나라의 언어를 볼 수 있다. 

 

EUC-KR

한글을 인코딩하는 또 다른 방식 중 하나이다.

UTF-8은 조합형 방식인 것에 반해, EUC-KR은 완성형 방식이다.

한글은 2byte를 사용

 

EUC-KR을 사용하는 국가에서만 문자를 온전하게 볼 수 있다. 

한글과 영어만 사용하는 페이지에 적합하다.

 

 

댓글