Warum wird das Unicode-Zeichen (U+2295) als (U+2248) ausgegeben?

Warum wird das Unicode-Zeichen (U+2295) als (U+2248) ausgegeben?

Ich öffne Notepad und tippe dann +2295mit gedrückter Alt-Taste und lasse dann die Alt-Taste los. Ich speichere die Datei mit Unicode-Kodierung. Die Ausgabe ist jedoch nichthttp://www.fileformat.info/info/unicode/char/2295/index.htmwie erwartet, aber dashttp://www.fileformat.info/info/unicode/char/2248/index.htmstattdessen. Was mache ich falsch? Ich suche nach ein paar Hinweisen.

Für alle anderen, die damit stolpern: Bitte beachten Sie, EnableHexNumpaddass es sich um eine neueZeichenfolgentyp(Siehe die in der Antwort verlinkte Wiki-Seite)

Antwort1

DerWikipedia-Eintragunter Unicode-Eingabemethoden wird eine notwendige Voraussetzung dafür aufgeführt, dass dies funktioniert:

Voraussetzung für diese Eingabemethode ist, dass der Registrierungsschlüssel HKEY_CURRENT_USER\Control Panel\Input Methodeinen Wert vom Typ string ( REG_SZ) mit dem Namen enthält EnableHexNumpad, der den Datenwert hat 1. Benutzer müssen sich unter Windows 8.1/8.0, Windows 7 und Vista ab- und wieder anmelden bzw. auf früheren Systemen nach der Bearbeitung der Registrierung einen Neustart durchführen, damit diese Eingabemethode funktioniert.

Nachdem ich diesen Registrierungsschlüssel auf meinem Computer hinzugefügt und einen Neustart durchgeführt habe, funktioniert die Eingabe wie angegeben.

Antwort2

Um die Frage zu beantworten, warum dieser spezielle Wert vorhanden ist:

Bei der Standardeingabemethode werden Dezimalzahlen mod 256 genommen und dann als OEM-Codepage* interpretiert, wenn keine führende Null vorhanden ist, oder als ANSI-Codepage, wenn eine führende Null vorhanden ist. Die Schritte sind also:

  • 2295 mod 256 = 247
  • 247 [0xF7] ist U+2295 in der OEM-Codepage

Zeichensätze, die in diesem Abschnitt U+2295 haben, sind die Codepages 437, 737, 770, 772, 774, 860, 861, 862, 863, 864, 865, CWI und MIK.

(Die Tatsache, dass „2295“ und „2248“ beide mit 22 beginnen, ist ein interessanter Zufall, mehr nicht.)

* Hinweis: „ANSI Code Page“ hat wenig mit ANSI zu tun, außer dass Code Page 1252 auf einem Entwurf dessen basierte, was später zu ISO 8859-1 wurde [und einige der anderen hatten ähnliche Ursprünge]. Es handelt sich um den 8-Bit-Zeichensatz, der mit dem aktuellen Gebietsschema verknüpft ist, und „OEM Code Page“ ist ein anderer Zeichensatz, der mit dem Gebietsschema verknüpft ist, normalerweise der, der in diesem Land in MS-DOS verwendet wurde.

verwandte Informationen