2010년도 이후, 우리는 유니코드라고 불리는 인코딩 방식이 통일된 시대를 살아가고 있습니다. 문자열을 다루는 디테일한 방식에 대해 전부 알 필요는 없지만, 프로그래밍 언어마다 문자열을 다루는 자료형의 차이를 이해하기 위해 문자열을 다루는 기본적인 방식은 알고 있어야 합니다.
문자열 하나는 몇 바이트인가요?
영어의 경우 알파벳 하나가 1 바이트(byte)를 차지하는 시절이 있었습니다. 그러나 글로벌 시대에는 유니코드를 사용해야 텍스트를 정확하게 저장할 수 있습니다. 프로그래밍 언어마다 문자열을 저장하는 자료형이 다 다르므로, "문자열 하나가 몇 바이트인가?"에 대한 답변은 이 자료형이 차지하고 있는 바이트를 이해할 때 답변할 수 있습니다.
컴퓨터는 이진수만 안다.
컴퓨터와 내가 문자를 입력하고 출력할 수 있도록 해주는게 바로 문자 코드다.
그리고 문자코드와 숫자를 매칭시킨 표를 문자표라고 한다.
대표적으로 아스키 코드표가 있다.
유니코드는 무엇인가요?
유니코드(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함하고 있습니다.
유니코드가 탄생하기 이전에는, 같은 한글이 적힌 텍스트 파일이라도 표현하는 방법이 제각각이었습니다. 어떤 파일이 지원하지 않는 다른 인코딩 형식으로 저장되어 있는 경우에는 파일을 제대로 불러올 수 없었습니다. 기본적으로 유니코드의 목적은 현존하는 문자 인코딩 방법을 모두 유니코드로 교체하는 겁니다.
저장 효율을 위해 언어에 따라 하나의 문자를 표현하는데 1~4byte를 사용한다.
그래서 가변 길이 인코딩 방식이라고 한다.
그러다보니 유니코드들의 나열에서 어느 정도의 크기를 읽어 하나의 문자로 인식해야하는지 혼란이 생겼다.
이에 다양한 인코딩 방식이 있는데, UTF-8, UTF-16, EUC-KR 등등이 있다.
인코딩(부호화)이란?
인코딩이란 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것입니다.
이 신호를 입력하는 인코딩과 문자를 해독하는 디코딩을 하기 위해서는 미리 정해진 기준을 바탕으로 입력과 해독이 처리되어야 합니다.
이렇게 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 합니다. 이 문자셋의 국제 표준이 유니코드입니다.
아스키코드,UTF-8, UTF-16, EUC-KR 따로 다루겠습니다
'OS,컴퓨터공학' 카테고리의 다른 글
ASCII 문자, UTF-8, UTF-16 (0) | 2022.02.10 |
---|