Unicode-Dateien lesen



  • Hallo zusammen.

    Kann mir irgendjemand sagen, wie ich möglichst einfach UTF-8-Dateien mit wifstream lesen kann? Leider bringt das Einlesen bei mir bei Umlauten und anderen Sonderzeichen stets ab.

    Grüße,
    Neku

    PS: Bitte keine zusätzlichen Libraries.



  • PS: Bitte keine zusätzlichen Libraries.

    Da die Standardlib absolut nicht UTF-8-fähig ist, wird das ziemlich schwierig werden. Die Standardlib unterstützt nämlich garkein UTF-x. Die Wide-Char-Klassen wie wstring, wfstream usw. sind zufällig (ähnlich) kompatibel mit UTF-16, mehr auch nicht. Wenn du UTF-16 Dateien hättest, hätte alles gut funktioniert.

    UTF-8-Texte wirst du mit Libs nach wstring umkonvertieren müssen. In der ASL gibts dafür Konverterfunktionen, wo man zwischen alle möglichen UTFs hin und her konvertieren kann. Habe sie aber selbst noch nicht benutzt. Hier mal mein Tip, was hilfreich wäre:

    http://opensource.adobe.com/group__asl__unicode.html#gb2825217eb52b33224cfd61d339b30a7
    http://opensource.adobe.com/group__asl__unicode.html

    Wenn du keine externe Lib benutzt (warum eigentlich nicht?), wirst du es selbt programmieren müssen.



  • Danke für die Antwort - so etwas habe ich schon befürchtet 😞



  • Naja, das einlesen ist ja nicht wirklich schwer, auch das interpretieren als Unicode-Wert ist nicht so schwer (dazu braucht es eigentlich nur den Wikipedia-Artikel zu UTF-8 und ein bisschen Bitschieberei), das ganze dann gescheit auszugeben ist nervig. Es kommt dann halt extrem auf die verwendete Umgebung an. Den Krams nach UTF-32 zu bekommen ist leicht, von da nach UTF-16 (falls die wstrings so kodiert sein sollten) kann auch nicht so schwer sein.
    Wofür brauchst du die eingelesenen Daten denn?


Anmelden zum Antworten