Vc entendeu errado a informação desta fonte que vc linkou.

Lá diz que o UTF-8 tem bits o bastante para codificar até o code point 0x1FFFFF, ou seja, tem limite. É um limite maior do que o UTF-16, mas tem limite.

Só que a RFC 3629 limitou o UTF-8 para ele combinar com o limite do UTF-16. Assim, tanto o UTF-8 quanto o UTF-16 só podem codificar até o code point 0x10FFFF.

Mesmo que vc pense que a RFC 3629 possa ser derrubada caso precise algum dia, vc estaria errado, pois ela não poderia ser simplesmente ignorada, pois isto permitiria que alguns code points fossem codificados em UTF-8, mas não em UTF-16.

Percebe que vc não pode dizer "que pode se estender até onde quiser"? Não pode porque tem limite e o limite é 0x10FFFF.


O outro ponto vc também entendeu errado. Eu disse que são 6 digitos hexadecimais, mas isso não quer dizer que vai até 2^24 porque os code points do Unicode não vão até 0xFFFFFF, eles vão até 0x10FFFF que é o máximo que o UTF-16 consegue codificar (e o máximo que aquela RFC permite que o UTF-8 vá também).

Mesmo que não houvesse a limitação dos seus irmãos (UTF-8 e UTF-16), nem o UTF-32 consegue se estender indefinidamente, pois ele só iria até 0xFFFFFFFF e isso nem faria sentido já que extrapola em muito o máximo de code points do Unicode.

A informação que eu te passei no primeiro comentário não saiu do nada, saiu da própria especificação. Não sei se vc chegou a ler, mas o paragrafo que eu queria te mostrar é o último do capitulo Introdução. Ele diz:

The Unicode Standard contains 1,114,112 code points, most of which are available for encoding of characters...

O trecho acima é a própria especificação estabelecendo limites.

Como o Unicode esta devidamente especificado, não tem como ele crescer indefinidamente, pois os sistemas que o implementam devem ser previsíveis. Só que o limite dele não é um problema para nós, pois em mais de 30 anos de Unicode, não conseguimos atingir nem 20% dele.


Claro que no futuro o padrão pode mudar e uma nova especificação ser criada com um limite maior e até indefinido.

Para vc ter uma ideia, no inicio o Unicode era baseado em apenas 16 bits, ou seja, só podia codificar até 65536.

Só que indo por esta linha de raciocinio estariamos apenas especulando e o ponto é:

A versão atual do Unicode, a versão 15.0, tem limite que é 1.114.112, ou 0x10FFFF. Da mesma forma, seus modos de codificação, UTF-8, UTF-16 e UTF-32, também acompanham este limite.

Consegui entender o teu ponto.