Unicode typeface support?



  • Servus,

    in einem weißen C++ Buch lass ich vor nicht all zu langer Zeit 😉 dass C++ keinen Zeichensatz vorschreibt. Die Klasse "String" bietet mir nun zwei chars. wchar und char. Im web stieß ich noch auf den Header uchar.h.

    So, was verwende ich nun für UTF-8, UTF-16, UTF32?


  • Administrator

    UTF-8 ist ein Byte, also meistens char.
    UTF-16 sind zwei Bytes, auf Windows ein wchar_t, allgemein kann man aber auch ein short nehmen.
    UTF-32 sind vier Bytes, meistens geht das mit einem int.

    Allerdings hast du dann immer noch das Problem, dass das Encodieren und Decodieren nicht automatisch geht. Oder anders gesagt:
    Der C++ Standard unterstützt kein UTF. Es gibt allerdings verschiedene Libraries im Internet, welche dir bei so Sachen helfen können. Zum Beispiel von IBM:
    http://www.icu-project.org/

    Alternativ kannst du auch selber was implementieren oder auf den nächsten C++ Standard warten. Der soll voraussichtlich 2009 verabschiedet werden, vielleicht gibt es im 2010, wenn wir optimistisch sind, einen standardkonformen Compiler.

    Grüssli


Anmelden zum Antworten