Sehen Sie sich das folgende Snippet an:
%Vor% Ich versuche zu verstehen, ob das zu übersetzende Verhalten u'\xb4'
in u' \u0301'
korrekt ist. Warum packt er den akuten Akzent mit einem Leerzeichen? Warum übersetzt es überhaupt die u \xb4
?
Im Dateiformat sehen wir, dass ACUTE ACCENT
früher als% co_de bezeichnet wurde %. Ich dachte, es bedeutete nur, dass der Cursor sich bewegen sollte, anstatt darauf zu warten, dass das folgende Zeichen eingegeben wird.
UPD: Falls jemand interessiert ist, hier ist eine Liste, wenn Unicode-Zeichen, die nach NFKC-Normalisierung ein Leerzeichen am Anfang haben: Ссылка
Ein Akzentzeichen ist die Kombination aus einem Leerzeichen und einem kombinierten Akzentzeichen, wie im Unicode-Standard angegeben:
%Vor% Das \u00B4
-Zeichen hat eine mehrdeutige Geschichte, aber der Unicode-Standard hat entschieden, es als Leerzeichen + Akzent zu behandeln, obwohl oft nur als diakritisches Zeichen verwendet wurde, siehe < a href="http://www.unicode.org/mail-arch/unicode-ml/y2010-m09/0067.html"> diese Diskussion .
Sie könnten vielleicht \u02CA
als Alternative verwenden; Es wird nicht als Leerzeichen behandelt, und es ist keine Zerlegung angegeben. Es ist stattdessen als Brief qualifiziert, so dass Ihre Meilenzahl variieren kann.
Sehen Sie sich das Dokument Unicode Collation Algorithm an. Beachten Sie insbesondere
Kompatibilität Normalisierung (NFKC) faltet Stand-alone-Akzente zu a Kombination von Leerzeichen + Akzent kombinieren.
In NFKD werden Zeichen mit Akzent auf "geteilte" Weise gespeichert: zuerst das zu akzentuierende Zeichen und dann der Kombinationsakzent: u' \u0301'
Akzentuierte Zeichen werden in NFKC "kombiniert" gespeichert: Es gibt einen dedizierten Unicode-Codepunkt: u'\xb4'
, was eine Abkürzung für u'\u00b4'
ist.
Beide repräsentieren nur den Akzent, der als Akzent für ein Leerzeichen gesehen werden kann.