- 유티코드 코드 포인트를 16비트 단위로 인코딩하는 가변길이 인코딩
- 16비트 1개 혹은 2개 써서 하나의 유니코드 문자 표현
- 2바이트 혹은 4바이트
- 유니코드 BMP(Basic Multilingual Plane)에 속한 문자는 코드 포인트 값 그대로 사용하므로 직관적
- BMP 벗어나는 문자들(이모지, 특수 한자, 고대 문자 등)은 16비트 두개를 Surrogate Pair로 묶어 표현
- Endian의 영향을 받기에 구분이 필요하며 BOM(byte order mark)이 사용될수도 있음
UTF-16 LE vs UTF-16 BE
- LE는 Little endian, BE는 Big endian
- OxAC00(가) 경우,
- LE: 00 AC
- BE: AC 00
- Java는 내부적으로 UTF-16 BE 씀
- OxAC00(가) 경우,
- BOM
- U+FEFF(BE)
- U+FFFE(LE)
- 항상 포함되는건 아니지만 대부분 경우 포함시킴(윈도우 메모장은 항상 포함)
Little Endian
Big Endian
