컴퓨터에서 문자를 처리하려면 당연하게도 컴퓨터가 이해할 수 있는 언어로 (2진수, 8진수, 16진수 등등...) 변환하여야 한다. 그렇다면 각 문자들에 서로 다른 값들을 할당해 주어야 하고, 이를 정리한 문자표가 필요할 것이다. 이처럼 값이 할당되어서 컴퓨터가 이해하고 처리할 수 있는 문자들을 모아놓은 모음을 문자 집합(Character Set)이라고 한다.
문자 집합에 속한 문자를 컴퓨터가 처리할 수 있게 변환하는 과정을 문자 인코딩(Character Encoding), 그 반대의 과정을 문자 디코딩(Character Decoding)이라고 한다. 과거부터 지금까지 다양한 문자 집합과 인코딩, 디코딩 방법이 제안되었고, 그 중 몇 가지를 살펴보도록 하자.
아스키 코드
초창기 컴퓨터는 아스키(ASCII: American Standard Code for Information Interchange) 코드라는 문자 집합을 사용하였다. 이 방법은 문자를 7비트로 나타내어 사용하였기 때문에 총 $2^7$ 가짓수로 문자를 표현할 수 있었다.
풀네임에서 알 수 있듯이, 아스키 코드는 오직 알파벳과 숫자, 여러 가지 특수 기호만을 나타낼 수 있었다. 때문에 영어를 제외한 다양한 언어를 표현할 수 없었다.
유니코드
이러한 한계 때문에 현대에 이르러서는 유니코드(Unicode)라는 문자 집합이 광범위하게 사용되고 있다. 유니코드는 한글을 포함한 다양한 나라의 문자, 특수기호 등을 표현할 수 있다. 이때 인코딩 방법도 UTF-8, 16, 32(Unicode Transformation Format) 등으로 다양하다.