전 세계의 모든 문자를 컴퓨터에 저장하는 방법에 대한 표준
Character Point
- U+AC00 이라는 형태로 유니코드를 표현할 때, 특정 글자가 할당 받은 위치인 AC00이라는 16진수를 Character Point 또는 Code Point라고 부른다.
인코딩(부호화) 방식
UTF-8
- 가장 널리 쓰임
- ascii 와 호환됨
UTF-16
- Windows에서 시스템 기본 인코딩 방식으로 사용
- 모든 문자에 16비트가 할당되어 글자 수 계산이 편함
UTF-32
- 유니코드에 할당된 값(Code Point)을 그대로 표현함
UCS-2
- UTF-16과 비슷하다.
- 옛날 문서에 그냥 유니코드라고 지칭하면 이걸 이야기한다.
표현 방법
- 기본
- (예) U+AC00
- 일반적으로 유니코드 문자를 설명할 때 사용
- Escape Sequence
- (예) \uAC00
- JSON 등에 글자를 넣어 전송할 때 사용. 보내는 쪽과 받는 쪽의 인코딩 방식이 다를 수가 있어서...
- HTML numeric code
- (예) 가
- HTML에서 사용하기 위한 용도. 요즘에는 거의 안 쓰는 듯
BOM (byte order mark)
- 유니코드로 작성된 문서 파일 맨 앞에 위치해서 이 문서가 어떤 인코딩으로 저장되었는지 등등의 정보를 알려주는 부분
- UTF-8에서 하도 이게 문제가 되서 요즘은 UTF-8에서 만큼은 잘 사용하지 않는다.
유니코드 정규화 (Unicode Normalization, Unicode Equivalence)
- 모양이 같은 여러 문자들이 있을 경우 이를 기준에 따라 하나로 통합해 주는 일
- MacOS에서는 NFD(Normalization Form Canonical Decomposition)를 이용하고, 윈도에서는 NFC(Normalization Form Canonical Composition) 방식으로 한글을 정규화 한다.
- 그래서 MacOS에서는 U+1100 ~ U+11FF 영역을 이용해서 한글을 표현하고, 윈도에서는 U+AC00 ~ U+D7A3 영역을 이용해서 표현한다.
- 그래서 맥에서 저장한 파일 이름이 윈도에서 볼 때 자음, 모음이 모두 펼쳐져서 보이는 경우가 있다.
참고