A equipe de desenvolvimento propõe mudar para UTF-8

Recentemente, um manifesto de programadores de Tel Aviv foi publicado no Hacker News. Eles sugeriram que o UTF-8 fosse a solução padrão para armazenar seqüências de texto na memória e comunicação.

O material gerou uma discussão ativa, e decidimos entender a situação, considerar os argumentos de especialistas em TI - incluindo engenheiros da IBM e especialistas em consórcios W3C.


Fotos - Raphael Schaller - Unsplash

Situação de codificação


Em 1988, Joe Becker apresentou o primeiro rascunho do padrão Unicode. O documento foi baseado na suposição de que 16 bits seriam suficientes para armazenar qualquer caractere. No entanto, muito rapidamente ficou claro que isso não era suficiente. Portanto, novas opções de codificação apareceram - incluindo UTF-8 e UTF-16. Mas a variedade de formatos e a falta de recomendações estritas sobre seu uso levaram a confusão no setor de TI (incluindo terminologia).

O formato interno do Windows é UTF-16 . Ao mesmo tempo, os autores do manifesto, discutido no Hacker News, afirmam que a Microsoft usou os termos Unicode e widechar como sinônimos de UTF-16 e UCS-2 ( consideradopredecessor original de UTF-16). Quanto ao ecossistema Linux, é habitual usar UTF-8 nele. A variedade de codificações às vezes leva ao fato de que os arquivos são danificados durante a transferência entre computadores com diferentes sistemas operacionais.

A padronização do setor pode ser uma solução - a transição para o UTF-8 para armazenar seqüências de texto na memória ou no disco e trocar pacotes pela rede.

Por que o UTF-8 é considerado melhor que o UTF-16


Um dos principais argumentos é que o UTF-8 reduz a quantidade de memória ocupada por caracteres no alfabeto latino (eles são usados ​​por muitas linguagens de programação). Letras latinas, números e pontuação comum são codificados em UTF-8 com apenas um byte. Além disso, seus códigos correspondem aos códigos em ASCII, o que fornece compatibilidade com versões anteriores.

Além disso, os especialistas da IBM dizem que o UTF-8 é melhor para interagir com sistemas que não esperam que dados de vários bytes cheguem. Outras codificações Unicode contêm vários bytes nulos. Os utilitários podem encontrá-los no final do arquivo. Por exemplo, em UTF-16, o caractere A se parece com isso: 00000000 01000001. Em uma linha C, essa sequência pode ser cortada. No caso de UTF-8, zero é apenas NUL. Nesta codificação, a primeira letra do alfabeto latino é representada como 01000001 - não há problemas com uma interrupção inesperada.

Pelo mesmo motivo, os engenheiros do consórcio W3C recomendam o uso de UTF-8 ao desenvolver interfaces front-end. Assim, você pode evitar dificuldades com a operação de dispositivos de rede.


Fotos - Kristian Strand - Notícia de

hacker residente de Unsplash anotadaque o UTF-8 permite detectar erros de codificação nos estágios iniciais. Nele, os bytes são lidos sequencialmente e os bits indiretos determinam seu número. Portanto, o valor do ponto de código é calculado sem ambiguidade e os desenvolvedores de aplicativos não precisam pensar no problema de Little-Endian ou Big-Endian .

Onde o UTF-16 tem a vantagem


Letras e pontuação em latim podem ocupar menos memória em UTF-8 (em comparação com UTF-16). Alguns pontos de código requerem o mesmo número de bytes nas duas codificações - por exemplo, esse fato é verdadeiro para o grego e o hebraico.

A situação é diferente com os caracteres asiáticos - no caso de UTF-8, eles precisam de mais espaço . Por exemplo, o caractere chinês será representado por três bytes: 11101000 10101010 10011110 . O mesmo caractere em UTF-16 será semelhante a 10001010 10011110 .

Qual é o resultado


O debate sobre o problema da introdução de uma única codificação está em andamento há muito tempo. Esta questão foi levantada há quase onze anos em um tópico no Stack Overflow. Pavel Radzivilovsky (Pavel Radzivilovsky) - um dos autores do manifesto participou. Desde então, o UTF-8 já se tornou uma das codificações mais populares da Internet. E foi reconhecido como obrigatório para "todas as situações" no WHATWG, uma comunidade de especialistas em HTML e API que desenvolve padrões relevantes.

Recentemente, a Microsoft também começou a recomendar o uso de UTF-8 no desenvolvimento de aplicativos da web. Talvez no futuro essa prática se estenda a outros utilitários.



:

« www»: -
« IaaS»: 1cloud
: AdTech- GDPR?
10- —
,


All Articles