ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니코드에 대해서 아시나요?
    프로그래밍 2019. 6. 18. 09:09

    안녕하세요 오늘은 프로그래밍을하면서 흔히 볼수있는 유니코드에 대해서 알아보는 시간을 가지려고 합니다

     

    컴퓨터에서는 모든 데이터를 0 아니면 1로 표현하는 이진수로 사용합니다

     

    초기에는 이를 표현 하는 ASCII값을 이용해서 값들을 표현했죠

     

    출처: https://shaeod.tistory.com/228

     

    아스키 코드표는 모든데이터를 1byte 즉 8bit로 표현합니다

     

    거기서 맨 앞 1bit는 패리티 비트라고 해당하는 데이터의 에러 검사 여부를 위해서 사용합니다

     

    그렇기에 2^7인 128개의 문자가 표현이 가능한거죠

     

     

    그런데 여기서 문제가 있습니다

     

    아스키 코드표에 해당하지 않는 문자를 표현하려면 어떻게 해야할까요?

     

    결국 해당하는 코드표를 추가하는 방법 밖에 없을겁니다

     

    그렇기에 다음으로 나오는 ANSI 코드가 있지만 이 내용은 이 포스팅에서는 다루지 않겠습니다 (너무 길어질까봐...)

     

     

    결국 유니코드가 만들어진 계기도 위와 같습니다

    세계에 존재하는 문자들을 표현하기 위해서 만들어진 하나의 코드표라고 생각하시면 됩니다

     

    유니코드는 2byte만큼의 크기를 가지고 있습니다 즉 2^16 65,536개 만큼의 문자를 표현할수가 있는데

     

    쓰지않는 고어, 한자를 표현하기에는 이도 부족했습니다

     

    그렇기에 유니코드 내에서 약 1024자는 상위대행 코드로, 다른 1024장은 하위대행 코드로 이를 결합해서 

    즉 2^10 * 2^10 = 1,048,576 만큼의 문자를 추가로 만들었습니다

     

    유니코드표는 매우 많은 코드가 있어 위에 있는 아스키 코드표 처럼 사진하나로 확인이 불가하며 

     

    각 코드표의 대략적인 위치는 확인이 가능한데

    출처: https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

     

    약 17개의 단면도가 나오는 이유는 약 110만개의 코드수를 2^16승으로(유니코드는 2byte이기에) 나누면 반올림하여 17의 값이 나옵니다

     

    결국 유니코드란 전세계의 문자들을 컴퓨터 상의 약속된 기호로 표현하기 위해 정의해놓은 코드들의 값이라고 보면 될것 같습니다

     

    다음 포스팅에서는 유니코드를 이용해서 인코딩하는 여러가지 방법에 대해서 알아보겠습니다

     

    감사합니다!!!

     

    (틀린 말이나 공감하는 부분은 말씀 달아주시면 감사하겠습니다)

    댓글

Designed by Tistory.