컴퓨터가 나온지 얼마 안됐을 당시, 컴퓨터는 영어와 특수문자만 입출력이 가능했고 이 문자들은 1byte로 할당해 저장되곤 했다. 컴퓨터가 점차 보급화 되면서 각국의 사람들은 자신들의 언어도 컴퓨터로 표현하고 싶었고 이들은 각자의 언어를 알파벳 대신 입력하여 사용하곤 했다. 하지만 시대가 지나고 인터넷이 발전하면서 다른 나라의 홈페이지를 접속하면 글자가 다 깨지는 현상이 발생했다. 이 때문에 각국은 표준을 정하기로하고 모든 언어를 표현할 수 있게끔 약속을 한다. 그것이 바로 유니코드다.
UTF-8은 여러 인코딩 방식 중의 하나이다. 인코딩이란 특정 'code' 가 저장되어 있는 방식을 의미한다. 자연어는 컴퓨터가 인식할 수 있는 형태로 바꾸어주어야만 하는데, 예를 들어 'A'라는 글자를 저장하기 위해 1byte를 배정해 표현할 수도있고 2byte, 4byte 등으로 표현할 수도 있는 것이다.
UTF란 (Unicode Transforamtion Format)의 약자다. 말 그대로 유니코드 변환 폼이라는 것이다. UTF-8 말고도 UTF-16이 있는데 이 둘의 차이는 숫자의 bit수를 기준으로 인코딩을 진행한다는 것이다. UTF-8은 1byte(=8bit) UTF-16은 2byte로 인코딩을 한다는 이야기다.
아무래도 UTF-8을 이용한 인코딩이 16에 비해 바이트수를 적게 잡아먹기 때문에 대부분 UTF-8을 사용하곤 한다.
요즘엔 잘 안보이지만 예전에는 종종 한글이 깨지거나 파일명이 어그러질 때 '인터넷 옵션에서 utf-8로 어쩌구~' 하는 메세지가 보였다. 아직도 해외의 몇몇 사이트는 EUC-KR을 기준으로 웹사이트가 구축됐기 때문. 이들이 유니코드를 사용함에도 서로 호환이 안되는 이유는 위에서 주욱 설명해 왔듯 이 유니코드를 저장하는 방식의 차이때문이다.