O básico que ninguém ensina direito
A regra é simples: letras maiúsculas servem para início de frase, nomes próprios e siglas. Letras minúsculas para o resto. Na prática, ninguém segue à risca e isso gera confusão constante, principalmente quando o texto precisa ser processado por software. O problema não é a regra em si, é a inconsistência humana. Um colega meu digitava "Nº" com acento no N e minúscula no o, achando que ficava mais elegante. O sistema de importação de dados quebrava porque esperava "Nº" ou "nº", nunca essa mistura. A correção foi um script simples que padronizava tudo para a forma canônica antes de qualquer ingestão.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O que considerar ao lidar com letras maiúscula e minúscula
Antes de tratar capitalização, você precisa decidir se o contexto é case-sensitive ou não. Bancos de dados como MySQL com collation default (utf8mb4_general_ci) ignoram caixa, mas o PostgreSQL com locale padrão diferencia. Se você está migrando dados, isso vai te pegar de surpresa. No meu caso, migrei uma tabela de clientes e o campo CPF, que contém apenas números, foi tratado como string. O sistema antigo aceitava "123.456.789-00" e "123.456.789-00" como iguais, o novo não. A solução foi aplicar LOWER() em ambos os lados na comparação, mas só depois de limpar a formatação. Há dois truques que pouparam horas de dor de cabeça. Primeiro: use Unicode NFD/ NFC normalization se você lida com acentos. A letra "ã" pode ser codificada como um caractere único ou como "a" + til. Scripts de comparação falham silenciosamente nisso. Segundo: nunca confie em funções como "title case" automáticas para nomes próprios. "Mac Donald" vira "Mac Donald", mas "Van Wyck" vira "Van Wyck", o que pode estar errado dependendo do nome original. Sempre valide com a fonte primária.
A ferramenta que recomendo é um script Python com pandas e a biblioteca unidecode, mas se você precisa de algo pronto, o OpenRefine tem transformações de texto bem robustas. Eu uso regularmente para normalizar endereços e nomes antes de cruzar bases. O tempo gasto em limpeza manual cai de cerca de duas horas para quinze minutos, dependendo do volume. O downside é que a ferramenta não entende contexto cultural; ela aplica regras gerais, então revisões manuais ainda são necessárias para casos ambíguos. Se o seu caso envolve transcrições históricas ou textos com grafia intencionalmente irregular, a abordagem automática falha. Nesses cenários, o melhor é estabelecer um protocolo manual com glossário de termos aceitos. A consistência vence a perfeição gramatical quando se trata de integração de sistemas.