Skip to content

NLS vs ICU difference in invariant case changing of title case characters. #59661

@teo-tsirpanis

Description

@teo-tsirpanis

Description

When .NET uses the ICU globalization libraries, changing the case of a title case character in the invariant culture works the most intuitive way:

Char.ToUpperInvariant('Dz') == 'DZ';
Char.ToLowerInvariant('Dz') == 'dz';

When using the NLS libraries by setting DOTNET_SYSTEM_GLOBALIZATION_USENLS to true however, the methods don't change the character at all:

Char.ToUpperInvariant('Dz') == 'Dz';
Char.ToLowerInvariant('Dz') == 'Dz';

Configuration

.NET 6, RC 1, Windows 10 21H1

Regression?

No

Other information

Even if it's by design, it should be documented somewhere as another NLS vs ICU difference.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions