wchar_t zu string || Unicode in String



  • Hallo liebe Community

    Ich hoffe ihr könnt mir helfen :).
    Ich bin recht neu auf dem Gebiet Unicode und sitze nun schon an einer Weile an einem Problem...
    Das Problem:
    Ich möchte vor Stringname das Unicode Zeichen €('\u20AC') setzen. Nun sind die Variablen SonderzeichenStringname und Stringname Strings.
    Wie setz ich das zeichen davor.

    Nach vielem hin und her ist das hier mein bester Ergebnis(leider falsch):

    wchar_t str[100];
    swprintf(str,100,L"%C",L'\u20AC');
    //wie wandel ich nun str in einen String
    str_format(SonderzeichenStringname,sizeof(SonderzeichenStringnameStringname),"%s%s",str,Stringname);
    //SonderzeichenStringname und Stringname sollten strings werden
    

    Ein Freund meinte ich könnte mal versuchen das Unicode Zeichen sofort in einen String zu wandeln. Ich wüsste jedoch nicht wie.
    Das versteh ich nicht.
    http://msdn.microsoft.com/en-us/library/wt3s3k55(v=vs.80).aspx

    Ich bin für jede Variante offen und hoffe auf eure Hilfe.

    Grüße Salamande

    ps.Programmieren tu ich auch noch nicht sooo lange also wäre ein bisschen Erklären mit Sicherheit hilfreich wenn ihr jedoch dazu keine Lust habt auch nicht schlimm 🙂



  • Ich verstehe zwar nicht ganz was du möchtest.

    Aber hier meine Erfahrungen zu Unicode -> der Code ist oft Compiler-Spezifisch und beim gcc können die Ergebnisse abhängig vom Betriebssystem variieren.
    Kann auch sein das ich beim gcc nicht die passenden Schalter gefunden habe.

    Suchst du so was:
    http://www.c-plusplus.net/forum/296595

    Mein aktuellerer gcc bekommt die IDEone-Version von Wutz aus dem Link nicht auf die Reihe. C99 ist eingestellt.

    MfG f.-th.



  • Nachtrag:

    mein gcc 4.6.? steigt da in Wutz Beispiel aus:

    swprintf(str,100,L"%s_(%C)_%C","abc",Zeichen,L'\u20AC');
    


  • Danke f.-th. für deine schnelle Antwort. 🙂
    Ja das habe ich schon gefunden und dachte auch das es perfekt für mich wäre jedoch aus irgendeinen grund funktioniert es bei mir nicht.

    Ich benutze zum compilen auch gcc und hab als betriebssystem "windows xp sp 2"
    Kann man das Sonderzeichen nicht irgwie direkt in einen string / wstring wandeln ?
    oder wie compilier ich richtig ?



  • swprintf ist nur C95, statt UCN zu verwenden bleibst du mit

    wchar_t euro=0x20ac;
    

    portabel, warum verwendest du nicht swprintf selbst für den Stringzusammenbau?
    Was soll das ominöse str_format?
    Um das Euro-Zeichen auch zur Anzeige zu bringen, muss der aktuelle Font dies natürlich auch unterstützen, ebenso handelst du dir nur unnötige Abhängigkeiten zwischen dem aktuellen Font deines Editors und dem der Laufzeitumgebung ein, wenn du solche Widechars direkt im String vorgibst, dann lieber o.g.


Anmelden zum Antworten