Dela via


Katakana- och Hiragana-tecken med konsonanttecken med halv bredd och full bredd behandlas som olika

Den här artikeln hjälper dig att lösa ett problem som uppstår när .NET Framework 4.x program jämför japanska strängar.

Gäller för: Windows 10 version 2004, Windows 10 version 20H2, Windows 10 version 21H1, Windows 10 version 21H2, Windows 10 version 22H2

Symtom

Vissa katakana- och Hiragana-tecken med japansk halvbredd och fullbredd som har ett konsonantmärke tolkas inte som samma tecken. När du använder CompareInfo.IndexOf metoden och IgnoreKanaType alternativen eller IgnoreWidth för CompareOptions att göra en jämförelse utvärderas dessa tecken som olika på grund av ett problem i sorteringsregeln.

Orsak

Från och med version 2004 uppdaterade Windows 10 versionen av National Language Support (NLS) till 6.3 och lade till stöd för arabiska och hebreiska. Det här tillägget påverkar reglerna för att sortera japanska strängjämförelser som använder NLS så att jämförelserna ger olika resultat.

Lösning

Varning

Det kan uppstå allvarliga problem om du gör felaktiga ändringar i registret. Dessa problem kan göra att du måste installera om operativsystemet eller till och med förhindra att datorn startar. Microsoft kan inte garantera att problemen kan lösas. Innan du ändrar det bör du först säkerhetskopiera registret för att kunna återställa det om problem skulle uppstå. Ändringar av registret sker på egen risk.

Lösning 1

Återställ NLS-sorteringsregeln till version 6.2. Den här versionen används i Windows 10, version 1909 och tidigare versioner. När du måste dela data mellan system bör du överväga att tillämpa lösningen konsekvent. Om du använder den här lösningen kan du utföra tillräckligt med testning och utvärderingar för att minimera problem som orsakas av olika sorteringsregelversioner på flera system.

Följ dessa steg om du vill använda den här lösningen:

  1. Öppna ett kommandotolksfönster (cmd.exe) som administratör.

  2. Kör följande kommando:

    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions /ve /d 0006020F /f

  3. Starta om datorn eller processerna för att se den fullständiga effekten.

Viktigt!

Om du inte har installerat KB4586853 eller en senare uppdatering på datorn kan det hindra datorn från att starta om du anger ett ogiltigt värde i registerposten.

Lösning 2

Ange NLS-sorteringsregeln till version 6.4. Den här versionen används i Windows 11. För att göra detta måste du tillämpa KB5014023 eller en senare uppdatering och uppgradera versionen till version 1741 eller en senare version. I det här fallet tillämpas version 22H2 redan och behöver inte uppdateras.

  1. Använd KB5014023 eller en senare uppdatering för Windows 10-versionerna 2004, 20H2, 21H1 och 21H2.

  2. Öppna kommandotolken (cmd.exe) som administratör.

  3. Kör följande kommando:

    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions /ve /d 00060403 /f

  4. Starta om datorn eller processerna för att se den fullständiga effekten.