프로그래밍 공부/Computer Science

[컴퓨터 공학 기초] 문자열

Kevinkb 2021. 11. 25. 16:33

ASCII (아스키 코드)

미국정보교환표준부호(American Standard Code for Information Interchange), 또는 줄여서 ASCII(아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다.

아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.

유니코드

유니코드(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함하고 있습니다.

 
인코딩은 어떤 문자나 기호를 컴퓨터가 이해할 수 있는 신호로 바꿔주는 것이다. 반대로 컴퓨터의 신호를 문자나 기호로 바꾸는 것을 디코딩이라고 한다. 이러한 인코딩과 디코딩을 하기 위해서는 정해진 기준을 가지고 입력과 해독이 처리되어야 한다. 이러한 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 한다. 이 문자셋의 국제 표준이 바로 유니코드이다. 유니코드는 ASCII를 확장한 형태이다.

UTF-8

UTF-8은 Universal Coded Character Set + Transformation Format – 8-bit의 약자로, 유니코드 문자셋을 인코딩하는 방식이다. UTF- 뒤에 등장하는 숫자는 비트(bit)입니다.

 
유니코드 문자셋을 인코딩하는 방식은 여러가지가 있는데 문자마다 적절한 바이트 수를 차지하게 해 다른 방식들보다 일반적으로 적은 용량만 쓰면서도 호환 문제도 가장 덜 발생하는 방식이 UTF-8 방식이다. 이러한 이유로 전세계적으로 가장 널리 사용된다. UTF-8은 1바이트에서 4바이트까지의 가변 길이를 가지며 네트워크를 통해 전송되는 텍스트도 주로 UTF-8로 인코딩된다. UTF-8은 ASCII 코드의 경우 1 byte, 크게 영어 외 글자는 2byte, 3byte, 보조 글자는 4byte를 차지한다. 이모지는 보조 글자에 해당하기 때문에 4byte가 필요하다.