- RFC 9839 define claramente os caracteres Unicode problemáticos que podem aparecer em campos de texto no desenvolvimento de software
- Este RFC trata dos problemas causados pela falta de consistência no tratamento desses caracteres em diferentes linguagens e bibliotecas
- A 9839 propõe três subconjuntos menos problemáticos, que podem ser usados opcionalmente
- Em comparação com o framework PRECIS existente, sua aplicação é mais fácil e simples
- Uma biblioteca em Go para RFC 9839 também foi publicada, ajudando no uso prático
Contexto e visão geral da RFC 9839
- O Unicode é usado como padrão em quase todo o processamento de dados textuais
- Porém, ao projetar estruturas de dados ou protocolos reais, permitir todos os caracteres Unicode pode causar problemas
- Paul Hoffman e o autor enviaram um rascunho individual ao IETF para apresentar critérios claros sobre problemas recorrentes com Unicode
- Após dois anos de discussão, ele foi adotado como padrão oficial e publicado como RFC 9839
- Este documento explica em detalhes os tipos de caracteres problemáticos, por que eles causam problemas (por razões técnicas e normativas) e três subconjuntos que os usuários podem escolher conforme a necessidade
Principais pontos da RFC 9839
- É um documento de referência essencial no projeto de campos de texto em ambientes de software e rede
- A RFC 9839 tem 10 páginas, sendo relativamente concisa para um padrão do IETF
- Foi escrita de forma acessível, voltada principalmente a desenvolvedores de software e engenheiros de redes
Exemplos de caracteres Unicode problemáticos
O projeto do JSON e suas limitações
- Não é responsabilidade do criador do JSON, Doug Crockford
- O formato foi projetado numa época em que o Unicode ainda não estava suficientemente maduro, então não foi possível restringir rigorosamente o conjunto de caracteres
- Como o padrão já não pode ser alterado, é necessário excluir empiricamente os caracteres problemáticos
Diferenças em relação ao framework PRECIS do IETF
- Mesmo antes da RFC 9839 de 2025, o IETF já oferecia vários padrões, como o RFC 8264 (PRECIS Framework)
- Esse framework trata em detalhes de como preparar, aplicar e comparar strings internacionalizadas
- Com 43 páginas, ele é abrangente tanto na explicação do contexto quanto nas soluções
- O PRECIS depende fortemente da versão do Unicode, além de ser complexo e difícil de aplicar
- A RFC 9839 é concisa e focada na praticidade, facilitando adoção rápida na definição de novos protocolos
Subconjuntos da RFC 9839 e exemplos de uso
- A 9839 apresenta três subconjuntos práticos:
scalars, XML e assignables
- Cada subconjunto varia ligeiramente na faixa de caracteres problemáticos que exclui
- A seguir, um resumo de como os principais formatos de dados e os subconjuntos da RFC 9839 tratam caracteres problemáticos
- Alguns formatos como CBOR, TOML, XML e YAML excluem parcialmente surrogates ou caracteres de controle
- I-JSON exclui surrogates e noncharacters
- JSON comum e Protobufs não os excluem
- XML e YAML, por suas características de charset, excluem apenas parcialmente noncharacters/códigos de controle
- Observação: XML e YAML não excluem noncharacters fora do Basic Multilingual Pane
Biblioteca RFC 9839 para Go
- Foi publicada uma pequena biblioteca em Go que oferece validação de caracteres para os três subconjuntos da RFC 9839
- Ela já foi suficientemente testada, embora a otimização ainda esteja em andamento
- Testes e feedback em uso real são bem-vindos
A importância da RFC 9839 e o processo de trabalho
- A RFC 9839 foi publicada oficialmente após mais de 15 revisões de rascunho, com feedback repetido dos coautores
- Graças às discussões e contribuições de muitos especialistas da comunidade, ela evoluiu para um documento muito mais completo do que a versão inicial
- Os colaboradores são mencionados na seção “Acknowledgements”
A experiência de uma submissão individual de RFC
- A RFC 9839 foi conduzida como submissão individual (individual submission)
- Em comparação com o método tradicional via Working Group, isso envolve maior esforço e carga processual
- Comparando com a experiência de participar de um Working Group, o método tradicional é mais eficiente e recomendável
Ainda não há comentários.