Gleichheit äquivalenter Unicode-Zeichenfolgen
Ich habe eine Frage zu Equality Equivalent Unicode Strings und habe etwas Python-Code angegeben, aber es kann eine allgemeine Frage für alle Programmiersprachen wie C, C ++, Perl oder Java sein.
Ich habe eine Zeichenfolge u, die eine Glyphe darstellt, die 05D1 (HEBREW LETTER BET) ist und 05BC (HEBREW POINT DAGESH) und 05B8 (HEBREW POINT QAMATS) enthält.
Ich habe einen anderen String v, der auch genau dieselbe Glyphe anzeigt, nämlich 05D1 (HEBREW LETTER BET), die 05B8 (HEBREW POINT QAMATS) und 05BC (HEBREW POINT DAGESH) enthält.
Der Unterschied liegt in der Reihenfolge des Einbaus oder der Kombination der "PUNKTE". Viele andere Sprachen und Buchstaben in Unicode können andere POINTS integrieren oder kombinieren, um eine Glyphe zu erstellen.
Jetzt sind u und v praktisch und visuell die gleiche Glyphe, können aber in Python nicht naiv verglichen werden:
>>> u='\u05D1\u05BC\u05B8' >>> v='\u05D1\u05B8\u05BC' >>> u 'בָּ' >>> v 'בָּ' >>> u==u True >>> v==v True >>> >>> u==v False >>> v==u False >>> u is v False >>>
Wenn ich eine Webseite mit diesen Glyphen erstelle, die Webseite anzeigen und nach einer Glyphe suchen, behandelt Mozilla FireFox diese beiden als "Distinct", aber Google Chrome behandelt sie als gleich. Offensichtlich prüfen Python und FireFox die Byte-Gleichheit, während Chrome die Byte-Gleichheit nicht überprüft, aber irgendwie herausfindet, dass beide gleich sind.
Wie lautet der Algorithmus zum Überprüfen der Gleichheit äquivalenter Unicode-Zeichenfolgen in Python?
0 Antworten auf die Frage
Verwandte Probleme
-
6
Unicode, Unicode Big Endian oder UTF-8? Was ist der Unterschied? Welches Format ist besser?
-
3
Vim: Wie behandelt man Unicode-Dateien mit Text in mehreren (mehr als zwei) Sprachen?
-
4
Ubuntu Linux: Kann ich standardmäßig Klartext einfügen?
-
3
Wie kann ich mit Python / AWK / SED ein Inhaltsverzeichnis für ein Markdown-Dokument erstellen?
-
1
So installieren Sie Markdowns Erweiterungen von Python
-
8
Wie geben Sie Unicode-Zeichen mithilfe von Hexadezimalcodes ein?
-
9
Ist Python nur für das Erstellen von Backends bei der Erstellung von Websites?
-
4
Um Python in einer HTML-Datei ähnlich wie PHP auszuführen
-
3
Wie kann man Unicode-Zeichen in Emacs sichtbar machen?
-
2
Bekommen, dass Dingbats in Firefox 3 angezeigt werden?