Entwicklertools · Textvergleich
Groß-/Kleinschreibung ist schwieriger, als es aussieht: Was „Groß-/Kleinschreibung ignorieren“ in Unicode bedeutet
· Hintergrund
Text-Diff Unicode Groß-/Kleinschreibung beachten
Erklärt, warum das Ignorieren der Groß-/Kleinschreibung für ASCII trivial und für Unicode subtil ist, mit punktlosem i, scharfem s und finalem Sigma als Beispielen, und was das für jeden Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung bedeutet.
Warum zwei Schreibweisen von Istanbul möglicherweise nicht übereinstimmen – beginnt mit einer realen Nichtübereinstimmung mit dem türkischen gepunkteten Großbuchstaben I, die englischsprachige Entwickler überrascht
Ein Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung klingt universell, bis Bezeichner, Skripte und Sprachregeln nicht übereinstimmen. Die eigentliche Regel von ToolAcre ist konkret: Wenn Groß-/Kleinschreibung ignorieren ausgewählt ist, erhält jede Zeilentaste nach jeder Leerzeichentransformation JavaScript `toLowerCase()`. Die strikte Gleichheit vergleicht dann die resultierenden Zeichenfolgen.
Dieser Mechanismus ist für Überschriften oder gewöhnliche Bezeichnungen nützlich, aber sein Name sollte nicht in eine gebietsschemabezogene sprachliche Gleichheit erweitert werden. Die Benutzeroberfläche erfasst kein Gebietsschema und die Funktion stellt keine bereit. Leser sollten die Ergebnisse immer dann prüfen, wenn die Groß-/Kleinschreibung eine Identitäts- oder Sprachbedeutung aufweist.
ASCII-Groß-/Kleinschreibung: ein einzelnes Bit – erklärt die einfache Beziehung zwischen Groß- und Kleinschreibung, die die Flags zum Ignorieren von Groß-/Kleinschreibung in frühen Tools vereinfachte
Die Arbeitsmappe beschreibt den ASCII-Fall als eine Einzelbitbeziehung, die Quelle implementiert jedoch keine Bitarithmetik oder einen Nur-ASCII-Zweig. Es ruft die Plattform-String-Methode für die gesamte Zeile auf. Historische Kodierungserklärungen erfordern Quellen außerhalb dieses Repositorys.
Für einfachen lateinischen Text werden `Hello` und `hello` unter der Option gleich, wie die Testsuite beweist. Dieser Test stellt ein Verhalten fest, nicht jede Unicode-Zuordnung. Vermeiden Sie es, bei allen Skripten ein oberflächliches englisches Beispiel in ein Versprechen umzuwandeln.
Die Implementierung ruft JavaScript toLowerCase auf; es macht keine ASCII-spezifische Bitoperation verfügbar
Unicode Case Folding ist ein Vergleichskonzept mit eigenen Daten- und Statusregeln. ToolAcre ruft keine benannte Faltbibliothek auf, normalisiert keine Zeichenfolgen und dokumentiert keine Unicode-Version. Wenn man diese Implementierung als „vollständige Faltung des Gehäuses“ bezeichnen würde, würde man behaupten, dass es keine Maschinen gibt.
Die vertretbare Beschreibung ist ein Kleinbuchstaben-Schlüsselvergleich mit der aktuellen JavaScript-Engine. Die ursprünglichen Zeilen bleiben für die Anzeige unverändert. Wenn sich die abgesenkten Zeichenfolgen in Länge oder Codepunkten unterscheiden, handelt es sich bei der Zeile weiterhin um eine Entfernung und Hinzufügung und nicht um eine erzwungene Übereinstimmung.
ToolAcre führt eine Kleinbuchstabenzuordnung durch, keinen dokumentierten Unicode-Faltvorgang
Der Umriss nennt Türkisch I, Deutsch Kreuz s und Griechisch Sigma. Dies sind legitime Themen für einen extern bezogenen Unicode-Artikel, aber dieses Repository enthält keine Tabelle oder Tests, die Ergebnisse dafür garantieren. In diesem Artikel wird bewusst auf die Angabe exakter Zuordnungen verzichtet.
Testen Sie die tatsächlichen Werte in der Zielumgebung und konsultieren Sie die maßgebliche Unicode- und Gebietsschemadokumentation, bevor Sie Identitätsregeln erstellen. Ein praktisches Kontrollkästchen zur visuellen Überprüfung sollte nicht zu einem Benutzernamenvergleicher, einer Sicherheitsgrenze oder einer mehrsprachigen Sortiermaschine werden.
Ausnahmen für benannte Sprachen erfordern externe Unicode-Quellen und werden hier nicht garantiert
Vergleichen Sie `Release Notes` mit `release notes`. Der strikte Modus meldet einen Ersatz; Bei „Fall ignorieren“ wird die Zeile als identisch gemeldet und der ursprüngliche linke Text angezeigt. Fügen Sie ein Satzzeichen oder einen Akzentwechsel hinzu und beachten Sie, dass die Kleinschreibung allein nicht alle Unterschiede auslöscht.
Dieses kontrollierte Beispiel demonstriert die Option, ohne vorzugeben, skriptspezifisches Verhalten zu regeln. Wenn Sie ein Glossar durchsehen, führen Sie zuerst den strikten Modus aus und zeichnen Sie nur Groß-/Kleinschreibungszeilen auf. Schalten Sie die Option anschließend um, um das Groß- und Kleinschreibungsrauschen von Rechtschreib- oder Zeichensetzungsänderungen zu trennen.
Arbeitsbeispiel: Testen Sie gewöhnliche lateinische Varianten, ohne sie auf jede Schrift zu verallgemeinern
In der Benutzeroberfläche wird keine Gebietsschemaauswahl angezeigt und `toLowerCase` erhält keinen Sprachparameter. Folglich wird unabhängig von der beabsichtigten Sprache des Dokuments derselbe Transformationscode ausgeführt. Die Route weiß nicht, ob eine Zeile türkisch, deutsch, griechisch oder eine Programmierkennung ist.
Diese Abwesenheit ist die praktische Warnung. Für die gebietsbezogene Suche, Sortierung oder Identität verwenden Sie eine API, die auf diese Anforderungen zugeschnitten ist, und verknüpfen Sie ihr Verhalten mit geeigneten Daten. Beim Textunterschied handelt es sich um die Betrachtungsweise eines Prüfers über zwei Zeichenfolgen, nicht um eine globale Benennungsrichtlinie.
Diese Vergleichsoption liefert keinen Gebietsschemaparameter
Dieser Artikel verspricht keine nicht-lateinische Äquivalenz, Normalisierung, Sortierung oder Sicherheit gegen verwechselbare Zeichen. Kleinschreibung kann nicht beantworten, ob sich zwei Namen auf dieselbe Person, dasselbe Produkt oder dasselbe Dateisystemobjekt beziehen. Diese Systeme können völlig unterschiedliche Fallregeln anwenden.
Leerzeichen ignorieren kann mit Groß-/Kleinschreibung kombiniert werden, aber dadurch wird das, was verschwindet, erweitert. Schalten Sie jeweils eine Option um, um die Ursache zu ermitteln. Ein unter beiden identisches Ergebnis besagt nur, dass die transformierten Leitungstasten übereinstimmen; Es sagt nichts über Bytegleichheit oder Semantik aus.
Fazit: Ignorieren Sie die Groß- und Kleinschreibung aus Bequemlichkeitsgründen, nicht aus Gründen der Korrektheit – fasst zusammen, wann die Option im Textvergleich von ToolAcre angemessen ist und wann die Ergebnisse überprüft werden sollten
Verwenden Sie „Groß-/Kleinschreibung ignorieren“ der Einfachheit halber, wenn die Groß- und Kleinschreibung bekanntermaßen zu Präsentationsrauschen führt. Behalten Sie den strikten Modus für Code, Pfade, Produktnamen und alle Domänen bei, in denen die Groß-/Kleinschreibung von Werten unterschieden werden kann. Überprüfen Sie beide Ausgaben, anstatt das lockerere Ergebnis zum einzigen Datensatz zu machen.
Die Implementierung von ToolAcre ist transparent genug, um genau zu sagen: optionale Leerraumbehandlung, dann JavaScript-Kleinbuchstabenzuordnung, dann strikte Zeilenschlüsselgleichheit. Diese bescheidene Behauptung ist nützlicher als ein weitreichendes Unicode-Versprechen, das die Quelle nicht unterstützen kann.