Partilhar via


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

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.