표준에는 ISO/IEC 10646 Universal Character Set, 문자 인코딩 방식, 문자 정보 데이터베이스, 문자 처리 알고리즘 등이 포함됨
유니코드 협회 (Unicode Consortium)에서 제정
유니코드의 문자에는 언어 표기 문자 뿐 아니라 악보 기호, 이모티콘, 기타 기호들도 포함된다.
목적 : 현존하는 문자 인코딩 방법을 유니코드로 통일하는 것
Encoding(부호화) : 사람이 인지할 수 있는 형태의 데이터(문자, 그림 등)를 약속된 규칙에 따라 컴퓨터가 이해할 수 있는 신호(0과 1)로 변환하는 것을 말한다. 반대로 신호를 문자로 해독하는 것을 Decoding(복호화)라고 한다. 인코딩/디코딩을 하기 위한 기준이 문자셋(Character Set)이다. 문자셋에는 키(숫자)와 값(문자)이 1:1로 매핑되어 있다.
초기에는 ASCII(7비트로 영문 알파벳, 숫자, 32개 특수문자, 공백 표현)가 사용되었으나 세계 곳곳에 인터넷이 보급되면서 표현해야할 문자가 증가하면서 전 세계 모든 문자들의 문자셋을 표준화하기 위한 대체 방식이 필요해졌다. 표준 문자셋에 대한 논의의 결과로 유니코드가 등장하게 되었다.
유니코드 문자는 글자 코드를 U+(16진수)로 표기한다. (예: '가' = U+AC00)
UTF-8 vs. UTF-16
UTF : Universal Coded Character Set Transformation Format
인코딩 방식의 차이(8bit/16bit). 유니코드표의 키(숫자)들을 어떻게 표현하느냐의 차이.
UTF-8
가변 길이 인코딩 : 한 문자를 나타내기 위해 1byte(=8bit) ~ 4byte까지 사용
ASCII 코드의 경우 1byte만으로 표현 가능. 영문 외 글자는 2, 3byte, 보조 글자는 4byte.
네트워크를 통해 전송되는 텍스트는 주로 UTF-8로 인코딩
byte 순서가 고정됨
UTF-16
유니코드 코드 대부분을 16bit(=2byte)로 표현 (기타 문자는 32bit(=4byte)로 표현)
이진법으로 표현된 문자를 16bit로 그대로 사용하며 바이트 순서에 따라 UTF-16의 종류도 달라짐