UTF-8 은 Unicode 를 8비트 단위로 해석하는 방식입니다.
ASCII 코드
아스키 코드는 8비트로 문자열을 인코딩하는 방식입니다.
그중 7비트는 문자를 표현하는데 사용하고, 나머지 1비트는 오류검을 위해 사용됩니다.
표와 같이 7비트를 사용해서 총 128개의 문자를 표현하는 인코딩 방식입니다.
Unicode
유니코드는 7비트의 한계로 더 많은 문자를 표현하기 위해서 1byte ~ 4byte 까지 사용하여 문자를 표현하는 인코딩 방식입니다.
그만큼 표로 본다면 엄청나게 많은 문자를 표현하고있습니다.
UTF-8
그런데, 1~4byte 를 사용하면서, 문자마다 가변적인 길이를 가지고 있다는게 문제가 되어, 이를 해석하는 방법중 하나가 utf-8 입니다.
그래서 문자마다 몇 byte 를 사용해야하는지를 지정해주어야합니다.
실제로 비트로 보면 아래와같은 규칙을 가지고있습니다.
0xxxxxxx : 첫 번째 바이트가 0으로 시작한다면 0이외의 7 비트를 아스키로 인식한다.
110xxxxx 10xxxxxx 두번째 바이트까지 읽어서 하나의 문자로 표현
1110xxxx 10xxxxxx 10xxxxxx 세번째 바이트까지 읽어서 하나의 문자로 표현
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 네번째 바이트까지 읽어서 하나의 문자로 표현
반응형
'개발 > CS' 카테고리의 다른 글
[CS] Base64 (feat. btoa(), atob()) (0) | 2023.10.04 |
---|