FUCK FUCK FUCK FUCK FUCKING FUCK.
Zkurveny Unicode mi sezralo tri hodin zivota.
Zasranej debilni kram.
Aaaanway, aspon se pochlubim.
Androidi verze aplikace, kterou prave pisu, pouziva data z iOSovy verze. Tam jsou vpodstate v XML. Parsovat XML je voser (a XPath je pomalej jak ... hmm, neco hrozne pomalyho), takze je nejdriv prekonvertuju do JSON a ten teprv nahravam.
Jenze to fungovalo jen trochu. Diakritika tam byla, ale tu a tam chybela, nekde byly extra mezery, nekde hacek o fous posunutej, proste to bylo blbe.
Tri posrany hodiny jsem hledal kde je problem. V konvertovacim programu, v kodovani streamu, v JSON dekoderu, ve fontu co pouziva TextView... nic.
A pak jsem si nastesti vzpomel, ze utf-8 neni uplne jednoznacny kodovani, ve smyslu ze stejnej logickej text jde zakodovat vice posloupnostma bajtu. Chvile googleni, nalezeni perlovyho modulo Unicode::Normalize, prohnat skrz nej ten json a pak pokus omyl. Na prvni pokus jsem zjistil, ze "Normalization Form D" nefunguje, resp. dava stejny vysledky jako predtim. A na druhej pokus jsem zjistil, ze "Normalization Form C" funguje jako kouzlo.
Cili proste existuje urcitej dialekt utf-8, kterej iOS zkousne, ale Android je z nej vedle sebe 8(
Kdybyste nekdy narazili na neco podobneho, tak mantra je "use Unicode::Normalize; print NFC(...whatever...);".
Zasranej Jan Hus a vsechny jeho pojebany nabodenicka. A to jsem si myslel, ze s utf-8 je problemum s cestinou konec.