U+AC00은 어떻게 0xEAB080으로 변환되었을까요? 변환 과정을 살펴보겠습니다.
UTF-8에서 코드 포인트가 U+0800에서 U+FFFF 사이인 문자는 다음과 같은 포맷으로 변환됩니다.
포맷을 천천히 살펴보겠습니다.
이 포맷에서 맨 앞에 있는 111은 바이트 수를 나타냅니다. 1바이트로 표현되면 1, 2바이트로 표현되면 11, 3바이트로 표현되면 111입니다. X로 표시된 부분은 문자의 코드 포인트를 2진수로 변환한 후 차례대로 채웁니다.
문자 ‘가’의 코드 포인트 U+AC00을 2진수로 표현하면 다음과 같습니다.
포맷의 X를 보면 첫번째 등장하는 X는 4자리, 그 다음은 6자리, 마지막은 6자리입니다. 이 자리수에 맞춰 변환해 둔 2진수 수(문자 ‘가’의 코드 포인트)를 표현해 보죠.
이제 포맷의 X를 이 수로 채웁니다.
이를 16진수로 변환하면 다음과 같습니다.
0xEAB080