Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

꾸준히

문자 인코딩 개념 본문

ETC

문자 인코딩 개념

S210530 2021. 6. 5. 15:39

문자표가 등장하게 된 계기

컴퓨터가 처리한 계산을 사람이 알아 볼 수 있는 형태로 출력하기 위해서다.

컴퓨터는 0, 1로만 값을 계산하기 때문에 문자는 계산 할 수 없다.

문자를 표현하기 위해서는 1은 'A', 2는 'B', 3은'C' ... 이런식으로 숫자값에 문자를 정하여 사용하였다.

아스키코드의 탄생

어떤 컴퓨터에서는 1이 'A'이고 어떤 컴퓨터에서는 2가 'A'이고... 각 컴퓨터마다 값에 대응되는 문자가 다르다보니 혼란이 발생하여 이를 해결하기 위해 만든 표가 아스키코드표이다.

하지만 아스키코드표는 영어만 지원하기 때문에 한글, 일본어, 중국어 등 각 나라의 언어들은 사용할 수가 없는 문제가 발생했다!

유니코드의 탄생

하나의 코드표를 만들어서 모든 세계의 언어를 표현할 수 있는 문자표를 만들자!라고해서 만들어진 것이 유니코드이다.

그런데 또! 문제가 생겨버렸다..

유니코는 영어는 1byte로 한글은 2byte로 다른나라언어나 특수문자를 표현할 땐 3byte로 가변적으로 표현하다보니 컴퓨터 입장에서는 언제는 1byte단위로 처리해야되고 언제는 2byte 단위로 처리해야 되는지 모르는 것이다.

인코딩의 탄생

유니코드로만 파일을 저장하면 위와같은 혼란이 생기니 몇 byte단위로 처리해야하는지 알려주기 위해 첫바이트에 정보를 추가한 것이 인코딩이다.

이런 인코딩의 방법으로는 UTF-8, UTF-16 등 여러종류가 있다.

아래 그림은 UTF-8의 인코딩 표이다

한글이 깨지는 이유?

가장 많은 경우는 ECU-KR로 인코딩 된것을 UTF-8로 읽거나, UTF-8로 인코딩 된것을 ECU-KR로 읽었을 때 이러한 현상이 발생한다. (인코딩 방식에 따라 데이터를 해석하는 방법이 다르므로)

cf) 사실 ECU-KR과 UTF-8은 인코딩 방식도 다르지만 사용하는 문자표도 다르다(ksx1001, unicode)

결론

문자표와 인코딩방식을 맞추면 '뷁입장브ㅜ뤱ㄹ' 같이 글자가 깨지지 않는다.