Comece com uma amostra intacta
Copie o valor recebido exatamente para uma referência preservada e para uma cópia de trabalho. Registre a origem e a falha: igualdade visual, copiar e colar, correspondência de busca, URL, regra de formulário ou parser. Anote também se emojis, joiners, seletores de variação, formas de largura e escritas não latinas são válidos nesse campo.
Torne as diferenças invisíveis revisáveis
Use hex-unicode-converter para expor uma representação orientada a pontos de código. Use emoji-extractor para listar emojis e posições, special-character-validator para pontuação e símbolos e text-fake-detector para pistas heurísticas sobre invisíveis, espaços incomuns e homoglifos comuns. São sinais de diagnóstico, não prova de que um caractere multilíngue esteja errado.
Escolha o ramo antes de mudar
Se o valor for um domínio, compare o rótulo legível com o resultado ASCII de punycode-encoder e use punycode-decoder para inspecionar um rótulo ASCII existente. Se o problema for largura, escolha somente a direção exigida pelo consumidor. Nenhum ramo prova sozinho segurança ou compatibilidade da aplicação.
Mantenha a limpeza explícita
Use zero-width-remover ou text-emoji-remover somente na cópia de trabalho e depois de decidir o que pode ser excluído. Preserve espaços com função de layout e tenha cuidado com joiners que formam sequências emoji. Não transforme uma sugestão do detector em substituição sem revisão.
Verifique o limite que realmente falhou
Repita as ferramentas de diagnóstico e compare representações, contagens e emojis que deveriam permanecer. Depois teste a cópia no campo de busca, parser de URL, formulário ou analisador real. Aceite apenas quando o comportamento for corrigido e cada diferença restante estiver explicada.