Dela via


Unicode-kategorin har ändrats för vissa latinska-1 tecken

Char metoderna returnerar nu rätt Unicode-kategori för tecken i intervallet Latin-1. Kategorin matchar unicode-standardens.

Ändra beskrivning

I tidigare .NET-versioner Char använde metoderna en fast lista över Unicode-kategorier för tecken i intervallet Latin-1. Unicode-standarden har dock ändrat kategorierna för vissa av dessa tecken sedan dessa API:er implementerades, vilket skapade en avvikelse. Dessutom fanns det också en avvikelse mellan Char API:er och CharUnicodeInfo som följer Unicode-standarden. I .NET 5 och senare versioner Char använder metoderna och returnerar den Unicode-kategori som matchar Unicode-standarden för alla tecken.

I följande tabell visas de tecken vars Unicode-kategorier har ändrats i .NET 5:

Tecken Unicode-kategori
i tidigare .NET-versioner
Unicode-kategori
i .NET 5 och senare versioner
§ (\u00a7) OtherSymbol OtherPunctuation
ª (\u00aa) LowercaseLetter OtherLetter
BLYG (\u00ad) DashPunctuation Format
¶ (\u00b6) OtherSymbol OtherPunctuation
º (\u00ba) LowercaseLetter OtherLetter

Version introducerad

.NET 5.0

Om du har någon kod som hämtar unicode-teckenkategorin Char med hjälp av klassen och antar att kategorin aldrig kommer att ändras, kan du behöva uppdatera den.

Orsak till ändringen

Den här ändringen gjordes så att kategorierna som returneras av Char typen överensstämmer med både Unicode-standarden och CharUnicodeInfo typen.

Berörda API:er

Dessutom påverkas alla klasser som är Char beroende av för att hämta Unicode-teckenkategorin, Regextill exempel , av den här ändringen.