spojrzenie na następującym fragmencie:Python unicode normalizacja: czy jest to poprawna przetłumaczyć u ' XB4' U” u0301'
>>> import unicodedata
>>> from unicodedata import normalize, name
>>> normalize('NFKD', u'\xb4')
u' \u0301'
>>> normalize('NFKD', u'a\xb4a')
u'a \u0301a'
>>> normalize('NFKC', u'a\xb4a')
u'a \u0301a'
>>> name(u'\xb4'), name(u'\u0301')
('ACUTE ACCENT', 'COMBINING ACUTE ACCENT')
Staram się zrozumieć, jeśli zachowanie tłumaczyć u'\xb4'
do u' \u0301'
jest poprawny. Dlaczego łączy ostry akcent z przestrzenią? Dlaczego w ogóle to tłumaczy?
Na fileformat widzimy, że ACUTE ACCENT
był nazywany SPACING ACUTE
. Pomyślałem, że to znaczy, że kursor powinien się przesunąć zamiast czekać na wpisanie następującego znaku.
UPD: na wypadek, gdyby ktoś był zainteresowany, tutaj jest lista znaków unicode, które po normalizacji NFKC mają spację początek: http://pastebin.com/Z99r5AK9
bardzo interesujące, dziękuję! – newtover
U + 00B4 ACUTE ACCENT i U 02CA MODIFIER LETTER ACUTE ACCENT są różnymi znakami i nie należy oczekiwać, że będą "renderowane tak samo". Ta pierwsza jest znacznie częściej obecna w czcionkach. Gdy oba są obecne, zwykle wyglądają podobnie lub podobnie, ale mają różne właściwości zdefiniowane w standardzie Unicode (np. Ogólna kategoria Symbol, modyfikator względem litery, modyfikator). I na przykład w czcionce Doulos SIL ich glify są podobno identyczne, ale szerokości z przodu są różne; w MingLiU stoki są bardzo różne. –
@ JukkaK.Korpela: Poprawiam się; Musiałem źle zrozumieć kontekst, usunę tę część. –