abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:33 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | IT novinky

    Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.

    Ladislav Hagara | Komentářů: 2
    včera 15:44 | IT novinky

    Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.

    Ladislav Hagara | Komentářů: 2
    včera 13:44 | Nová verze

    Dolphin (Wikipedie), tj. open source multiplatformní emulátor herních konzolí GameCube a Wii od Nintenda, byl vydán ve verzi 2606. S podporou Game Boy Playeru.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Zajímavý software

    Vasudeva Kamath představil utilitu debvulns, alternativu k nativní utilitě debsecan, pro výpis zranitelností v Debianu. Navíc má především možnost výstupu ve strukturovaných formátech JSON a CSV. V plánu je exportér pro Prometheus.

    Ladislav Hagara | Komentářů: 0
    24.6. 21:44 | IT novinky

    Oficiální český státní eshop s elektronickými dálničními známkami nově najdete na edalnice.gov.cz. Doména gov.cz jasně potvrzuje, že jste na oficiálním státním webu [𝕏].

    Ladislav Hagara | Komentářů: 22
    24.6. 14:22 | Nová verze

    Byla vydána nová verze 4.8.0 interaktivního shellu fish (friendly interactive shell, Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    24.6. 12:00 | Nová verze

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem se nově stal čínský LineShine v Národním superpočítačovém centru v Šen-čenu (NSCS) s výkonem 2,198 exaFLOPS. Z prvního místa sesadil americký superpočítač El Capitan s výkonem 1,809 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 215 místo. Karolina, GPU partition klesla na 249. místo a Karolina, CPU partition na 475. místo.

    … více »
    Ladislav Hagara | Komentářů: 13
    23.6. 21:00 | IT novinky

    Zemřel průkopník videoherní hudby Bobby Prince (Wikipedie). Složil hudbu pro hry Wolfenstein 3D, Doom, Doom II, Duke Nukem II a Duke Nukem 3D.

    Ladislav Hagara | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (2%)
     (16%)
     (26%)
    Celkem 1986 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: QString, diakritika na ascii znak

    29.6.2011 15:49 Sten Fil
    QString, diakritika na ascii znak
    Přečteno: 936×
    Ahoj,

    poradte pls. jak v Qt zkonvertovat u s carkou, u s krouzkem na u?



    Mam QString s unicode textem a potrebuju ho prevest na text bez diakritiky.

    Jedna se o ceske a slovenske texty.

    Napadlo me udelat jednoduchou prevodni tabulku znaku.

    Neni to uz nekde v Qt implementovano?

    Diky

    Odpovědi

    Josef Kufner avatar 1.7.2011 14:03 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: QString, diakritika na ascii znak
    Koukni na http://doc.trolltech.com/latest/qtextcodec.html.

    Pokud to nebude stačit, tak koukni na iconv a jako cilove kodovani dej "ASCII//TRANSLIT"
    Hello world ! Segmentation fault (core dumped)
    mirec avatar 1.7.2011 14:36 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: QString, diakritika na ascii znak
    Dá sa jednoducho využiť normalizácia UTF stringov.
    QString diakritika = QString::fromUtf8("Ůíííííí");
    QString normalizovany = diakritika.normalized(QString::NormalizationForm_KD);
    QBuffer vystup;
    vystu.open(QIODevice::WriteOnly);
    foreach (const QChar &char, normalizovany) {
      if (ch < 0x80) {
        vystup.putChar(ch.toAscii());
      }
    }
    vystup.close();
    QString bezDiakritiky = vystup.data();
    
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    1.7.2011 20:09 __dark__
    Rozbalit Rozbalit vše Re: QString, diakritika na ascii znak
    Proč používáš ten QBuffer, není toto ekvivalentní?
    QString doIt(const QString& input)
    {
      QString norm = input.normalized(QString::NormalizationForm_KD);
    
      QString output;
      output.reserve(input.length());
    
      foreach (const QChar& c, norm) {
        if (c < 0x80)
          output.append(c);
      }
    
      return output;
    }
    
    Druhá věc je, že ta podmínka (c < 0x80) může odstranit i jiné užitečné znaky.
    mirec avatar 2.7.2011 09:06 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: QString, diakritika na ascii znak
    Teoreticky ten append môže byť pomalší. Problémom je, že nie je jednoduché rezervovať správnu veľkosť pretože niektoré znaky (ß, fi, ...) expandujú namiesto jediného znaku na niekoľko znakov. A podmienka je postačujúca na základné ASCII znaky. vyššie hodnoty sú už unicode a nevie o jednoduchom spôsobe ako si s nimi poradiť okrem tabuľky znakov.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    4.7.2011 13:46 Sten Fil
    Rozbalit Rozbalit vše Re: QString, diakritika na ascii znak
    Dobre reseni. Diky.

    Trochu jsem upravil test na ASCII, aby prosly vsechny znaky bez rozkladu beze zmeny. Pomoci prevodu po znacich.

    QString c1;
    foreach (const QChar& c, input)
    {
       c1 = c.decomposition ();
       if (c1.isEmpty ())
       {
           output.append (c);
       }
       else
       {
           output.append (c1.at (0));
       }
    }
    


    Rozklad jednoho znaku na vice, mozna pomoci nejakeho if (c1.at(1).isLetterOrNumber ()). Ale nevim ktere QChar.isXXX () pouzit.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.