Portál AbcLinuxu, 9. května 2025 19:30

Dotaz: recode utf-8..flat

27.2.2007 16:54 dusan456 | skóre: 12 | Poprad
recode utf-8..flat
Přečteno: 319×
Odpovědět | Admin
Mám problém so zmenou kódovania s recode utf-8..flat, ako aj v perle, tak aj v php. Text je v utf-8 a ja ho potrebujem prispôsobiť anglickej abecede.

Pri písmenach dlhé prehlasované maďarské o "ő" a aj pri škandinávskom preškrtnutom o "ø" to nefunguje.

Nevie prosím niekto pomôcť, ako si s tým poradiť? Ďakujem za prípadne info.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.2.2007 18:09 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: recode utf-8..flat
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ajaj - odstraňování diakritiky je dost špinavá práce. Přečti si diskusi pod tímto článkem: http://www.abclinuxu.cz/clanky/programovani/standardni-knihovna-pro-python-7-retezce-3
S tím přehlasovaným maďarským "ő" nebude problém, ale to přeškrtnuté "ø" bude asi nutné opravit ručně, protože to není složenina:
>>> import unicodedata
>>> print unicodedata.normalize('NFD', u'ő')
ő
>>> print unicodedata.normalize('NFD', u'ø')
ø
27.2.2007 19:16 ams | skóre: 10
Rozbalit Rozbalit vše Re: recode utf-8..flat
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je problem jenom u techto dvou pismen, pak se jich muzete zbavit rucne:
$ perl -Mutf8 -le '$_="Hungarian ő, Scandinavian ø";tr/őø/o/;print'
Hungarian o, Scandinavian o
27.2.2007 21:39 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: recode utf-8..flat
Odpovědět | | Sbalit | Link | Blokovat | Admin
V Pythonu bych to videl takhle:
    
def cleanString(what):
        '''Gets rid of letters which are not in English alphabet'''
        assert type(what) == unicode
        normalized = unicodedata.normalize('NFKD', what)
        output = ''
        for c in normalized:
            if not unicodedata.combining(c):
                output += c
        return output
michich avatar 27.2.2007 22:24 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: recode utf-8..flat
Odpovědět | | Sbalit | Link | Blokovat | Admin
Náhrada dánského/norského "ø" -> "o" je špatný nápad. Lepší a srozumitelnější je transkripce na "oe". A jestli tam někde máš "å", tak to se přepisuje na "aa".
27.2.2007 23:10 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: recode utf-8..flat
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ďakujem za info, budem to musieť urobiť asi ručne. Najväčší problém budem teraz mať so zistením, čo neprešlo prekodovaním v tomto multi-multijazyčnom texte (400MB).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.