Wikipedia 기사 에 따르면 UTF-8의 형식은 다음과 같습니다.
첫 번째 코드 마지막 코드 바이트 바이트 1 바이트 2 바이트 3 바이트 4 사용 된 포인트 U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 07FF 2110xxxxx 10xxxxxx U + 0800 U + FFFF 3 1110xxxx 10xxxxxx 10xxxxxx U + 10000 U + 1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx x는이 비트가 코드 포인트를 선택하는 데 사용됨을 의미합니다.
이렇게하면 각 연속 바이트에서 2 비트와 첫 번째 바이트에서 1 비트가 낭비됩니다. UTF-8이 다음과 같이 인코딩되지 않은 이유는 무엇입니까?
첫 번째 코드 마지막 코드 바이트 바이트 1 바이트 2 바이트 3 사용 된 포인트 U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 3FFF 2 10xxxxxx xxxxxxxx U + 0800 U + 1FFFFF 3110xxxxx xxxxxxxx xxxxxxxx
코드 포인트가 기본 다국어 평면을 벗어나거나 코드 포인트가 [U + 800, U + 3FFF] 범위에있는 경우 1 바이트를 저장합니다.
UTF-8이 왜 더 효율적인 방식으로 인코딩되지 않습니까?