Ich versuche, verschiedene Strategien für die Groß-und Kleinschreibung UTF-8 String-Vergleich zu bewerten.Fall falten UTF-8 ohne die Sprache zu kennen
Ich habe etwas vom Unicode-Konsortium gelesen, experimentierte mit ICU und versuchte, verschiedene Implementierungsalternativen zu finden.
Bei mehreren Gelegenheiten habe ich gesehen, dass Texte zwischen Simple Case Mapping und Full Case Mapping unterscheiden, und ich wollte sicherstellen, dass ich den Unterschied vollständig verstehe.
Wie ich es gelesen habe, ist Simple Case Mapping "kontextfrei", d. H. Muss nicht wissen, welche Sprache die Nutzlast ist. Dies wird aufgrund des turkischen "I/ı/İ/i" -Debakels zu ungefähren Ergebnissen führen.
Vollständige Case Mapping, auf der anderen Seite, muss die Sprache der Nutzlast kennen, um das Mapping durchführen zu können. Mit dieser zusätzlichen Information kann es spezielle Maßnahmen ergreifen, um Fälle abzudecken, in denen "Kim" als eine Turkic-Saite "KIM" in Großbuchstaben wird, aber "Kim" als eine englische Saite, sollte "KIM" in Großbuchstaben werden.
Habe ich das richtig verstanden?
Gibt es weitere Beispiele für "facettenreiche" Codepunkte, die sich für verschiedene Sprachen unterscheiden?
Danke!
UPDATE: Eine der Quellen, die einfache Fallzuordnung als sprachunabhängig nennt, ist ICU's documentation. Ich habe das als Unicode-Wahrheit interpretiert, aber vielleicht ist es nur eine Aussage über die Implementierung?
Also brauchen beide den Sprachkontext, oder? Ich benutze eine Drittanbieter-Bibliothek (PCRE), die nicht CaseFolding.txt, sondern nur die Fallinformation aus UnicodeData.txt verwendet und keinen Sprachkontext benötigt (weder explizit noch implizit, soweit ich das beurteilen kann). Ich dachte mir, dass das im Simple-Fall vielleicht ein wirklicher Kompromiss war. –
Absolut. Wie in der Datei angegeben, müssen Sie wissen, wann die Datensätze mit dem Statuscode "T" ignoriert werden sollen. –
Soweit ich sehen kann, erscheint der T-Statuscode in CaseFolding.txt und nicht UnicodeData.txt. Aber sagen Sie wirklich, dass _correct_ falten nur mit Kenntnis des Sprachkontextes gemacht werden kann? Ich suche einen Kompromiss, der nicht den Kontext erfordert und nicht 100% perfekt ist ... Aber vielleicht ist das der erste Schritt auf dem Weg zur Wärme? –