Português (Brasil)

Ferramentas para desenvolvedores · Comparação de texto

Dobrar maiúsculas e minúsculas é mais difícil do que parece: o que significa 'ignorar maiúsculas e minúsculas' em Unicode

· Fundo

diferença de texto Unicode distinção entre maiúsculas e minúsculas

Chaves de linha maiúsculas e minúsculas convergindo enquanto uma forma excepcional permanece separada
Ilustração vetorial original ToolAcre

Explica por que ignorar maiúsculas e minúsculas é trivial para ASCII e sutil para Unicode, com i sem ponto, s sustenidos e sigma final como exemplos, e o que isso significa para qualquer comparação que não diferencia maiúsculas de minúsculas.

Por que duas grafias de Istambul podem não corresponder - começa com uma incompatibilidade do mundo real envolvendo o I maiúsculo pontilhado turco que surpreende os desenvolvedores que falam inglês

A comparação sem distinção entre maiúsculas e minúsculas parece universal até que identificadores, scripts e regras de linguagem discordem. A regra real de ToolAcre é concreta: quando Ignorar caso é selecionado, cada chave de linha recebe JavaScript `toLowerCase()`, após qualquer transformação de espaço em branco. A igualdade estrita então compara as strings resultantes.

Esse mecanismo é útil para títulos ou rótulos comuns, mas seu nome não deve ser expandido para igualdade linguística com reconhecimento de localidade. A UI não coleta nenhuma localidade e a função não fornece nenhuma. Os leitores devem inspecionar os resultados sempre que o caso tiver significado de identidade ou linguagem.

ASCII case: um único bit - explica o relacionamento simples entre maiúsculas e minúsculas que facilitou os sinalizadores de ignorar maiúsculas e minúsculas das primeiras ferramentas

A pasta de trabalho descreve o caso ASCII como um relacionamento de bit único, mas a origem não implementa aritmética de bits ou uma ramificação somente ASCII. Ele invoca o método string da plataforma na linha completa. As explicações de codificação histórica requerem fontes além deste repositório.

Para texto latino básico, `Hello` e `hello` tornam-se iguais na opção, como prova o conjunto de testes. Esse teste estabelece um comportamento, não todo mapeamento Unicode. Evite transformar um exemplo passageiro de inglês em uma promessa sobre todos os scripts.

A implementação chama JavaScript toLowerCase; não expõe uma operação de bit específica de ASCII

A dobragem de maiúsculas e minúsculas Unicode é um conceito de comparação com seus próprios dados e regras de status. ToolAcre não chama uma biblioteca dobrável nomeada, normaliza strings ou documenta uma versão Unicode. Chamar esta implementação de “dobragem completa da caixa” significaria a ausência de maquinaria.

A descrição defensável é uma comparação em letras minúsculas usando o mecanismo JavaScript atual. As linhas originais permanecem inalteradas para exibição. Se as strings reduzidas diferirem em comprimento ou pontos de código, a linha permanecerá uma remoção e adição, em vez de uma correspondência forçada.

ToolAcre executa mapeamento de letras minúsculas, não uma operação de dobramento de maiúsculas e minúsculas Unicode documentada

O esboço nomeia turco I, sustenidos alemães e sigma grego. Esses são tópicos legítimos para um artigo Unicode de origem externa, mas este repositório não contém nenhuma tabela ou testes que garantam resultados para eles. Este artigo evita deliberadamente declarar mapeamentos exatos.

Teste os valores reais no ambiente de destino e consulte a documentação oficial de Unicode e de localidade antes de criar regras de identidade. Uma caixa de seleção conveniente para revisão visual não deve se tornar um comparador de nomes de usuário, um limite de segurança ou um mecanismo de agrupamento multilíngue.

As exceções de idioma nomeado requerem fontes Unicode externas e não são garantidas aqui

Compare `Release Notes` com `release notes`. O modo estrito relata uma substituição; Ignorar caso relata a linha idêntica e exibe o texto original à esquerda. Adicione uma pontuação ou mudança de acento e observe que apenas letras minúsculas não apagam todas as diferenças.

Este exemplo controlado demonstra a opção sem pretender resolver o comportamento específico do script. Ao revisar um glossário, execute primeiro o modo estrito e registre linhas somente com maiúsculas e minúsculas. Alterne a opção posteriormente para separar o ruído de letras maiúsculas das alterações ortográficas ou de pontuação.

Exemplo resolvido: teste variantes latinas comuns sem generalizar para todos os scripts

Nenhum seletor de localidade aparece na IU e `toLowerCase` não recebe nenhum parâmetro de idioma. Consequentemente, o mesmo código de transformação é executado independentemente do idioma pretendido do documento. A rota não sabe se uma linha é turca, alemã, grega ou um identificador de programação.

Essa ausência é o aviso prático. Para pesquisa, classificação ou identidade com reconhecimento de localidade, use um API projetado de acordo com esses requisitos e fixe seu comportamento com dados apropriados. A comparação de texto é uma lente do revisor sobre duas strings, não uma política de nomenclatura global.

Nenhum parâmetro de localidade é fornecido por esta opção de comparação

Este artigo não promete equivalência, normalização, comparação ou segurança não latina contra caracteres confundíveis. As letras minúsculas não podem responder se dois nomes se referem à mesma pessoa, produto ou objeto do sistema de arquivos. Esses sistemas podem aplicar regras de caso completamente diferentes.

Ignorar espaços em branco pode ser combinado com maiúsculas e minúsculas, mas isso amplia o que desaparece. Alterne uma opção de cada vez para identificar a causa. Um resultado idêntico em ambos indica apenas que as chaves de linha transformadas correspondem; não diz nada sobre igualdade de bytes ou semântica.

Conclusão: ignore maiúsculas e minúsculas por conveniência, não por correção - resume quando a opção na comparação de texto de ToolAcre é apropriada e quando inspecionar os resultados

Use Ignorar maiúsculas e minúsculas por conveniência quando a capitalização for conhecida como ruído de apresentação. Mantenha o modo estrito para código, caminhos, nomes de produtos e qualquer domínio onde maiúsculas e minúsculas possam distinguir valores. Revise ambas as saídas em vez de tornar o resultado mais flexível o único registro.

A implementação de ToolAcre é transparente o suficiente para declarar com precisão: tratamento opcional de espaços em branco, depois mapeamento de letras minúsculas JavaScript e, em seguida, igualdade estrita de chave de linha. Essa afirmação modesta é mais útil do que uma promessa expansiva do Unicode que a fonte não pode apoiar.