Mudanças significativas na globalização no .NET Core 3.0
As seguintes alterações estão documentadas nesta página:
Quebrando a mudança | Versão introduzida |
---|---|
A localidade "C" é mapeada para a localidade invariante | 3.0 |
.NET Core 3.0
A localidade "C" é mapeada para a localidade invariante
O .NET Core 2.2 e versões anteriores dependem do comportamento padrão da UTI, que mapeia a localidade "C" para a localidade en_US_POSIX. A localidade en_US_POSIX tem um comportamento de agrupamento indesejável, porque não oferece suporte a comparações de cadeia de caracteres que diferenciam maiúsculas de minúsculas. Como algumas distribuições Linux definem a localidade "C" como a localidade padrão, os usuários estavam enfrentando um comportamento inesperado.
Alterar a descrição
A partir do .NET Core 3.0, o mapeamento de localidade "C" foi alterado para usar a localidade Invariant em vez de en_US_POSIX. A localidade "C" para mapeamento Invariante também é aplicada ao Windows para consistência.
O mapeamento de "C" para en_US_POSIX cultura causou confusão no cliente, porque en_US_POSIX não suporta operações de classificação/pesquisa de cadeia de caracteres sem diferenciação de maiúsculas e minúsculas. Como a localidade "C" é usada como uma localidade padrão em algumas das distros Linux, os clientes experimentaram esse comportamento indesejado nesses sistemas operacionais.
Versão introduzida
3.0
Ação recomendada
Nada mais específico do que a consciência dessa mudança. Essa alteração afeta apenas aplicativos que usam o mapeamento de localidade "C".
Categoria
Globalização
APIs afetadas
Todas as APIs de agrupamento e cultura são afetadas por essa alteração.