Compartilhar via


Alterações interruptivas de globalização no .NET Core 3.0

As seguintes alterações interruptivas estão documentadas nesta página:

Alteração interruptiva Versão introduzida
A localidade "C" é mapeada para a localidade invariável 3.0

.NET Core 3.0

A localidade "C" é mapeada para a localidade invariável

O .NET Core 2.2 e versões anteriores dependem do comportamento padrão da ICU, que mapeia a localidade "C" para a localidade en_US_POSIX. A localidade en_US_POSIX tem um comportamento de agrupamento indesejável, pois não dá suporte a comparações de cadeia de caracteres que não diferenciam maiúsculas de minúsculas. Como algumas distribuições do Linux definem a localidade "C" como a localidade padrão, os usuários estavam tendo um comportamento inesperado.

Descrição das alterações

Do .NET Core 3.0 em diante, o mapeamento de localidade "C" foi alterado para usar a localidade invariável em vez de en_US_POSIX. O mapeamento da localidade "C" para invariável também é aplicada ao Windows para consistência.

O mapeamento de "C" para a cultura en_US_POSIX causou confusão no cliente, pois en_US_POSIX não dá suporte a operações de cadeia de caracteres de classificação/pesquisa sem diferenciar maiúsculas de minúsculas. Como a localidade "C" é usada como uma localidade padrão em algumas das distribuições do 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 os 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.