Umlaute in std::string (von SOAP Webservice)



  • Hallo,

    ich weiß, dass Umlaute im Typ std::string eigentlich funktionieren und in einem Test auch keinerlei Probleme darstellen.

    Nutze ich aber den SOAP Webdienst von openligadb, bekomme ich ein Result-Set, welches unter anderem den Team-Namen der Heim-Mannschaft beinhaltet (vom Typ std::string*).

    Leider bekomme ich dann statt der Umlaute nur Fragezeichen in der Konsole zu sehen und in meinem wxWidget Control (wxDataViewListCtrl) wird das Feld garnicht erst befüllt...

    Hier mal mein Code:

    listCtrl = new wxDataViewListCtrl( this, -1 );
    
    wxVector<wxVariant> data;
    
    for ( int i = 0; i < matchdata.size(); i++ )
    {
      data.push_back( wxVariant( matchdata[ i ]->nameTeam1 ) );
      data.push_back( wxVariant( matchdata[ i ]->nameTeam2 ) );
      listCtrl->AppendItem( data );
      data.clear();
    }
    

    Wenn ich nun statt

    data.push_back( wxVariant( matchdata[ i ]->nameTeam1 ) );
    

    folgendes probiere:

    data.push_back( wxVariant( wxString( matchdata[ i ]->nameTeam1, wxConvUTF8 ) ) );
    

    funktioniert es leider auch nicht.

    Mache ich aber:

    data.push_back( wxVariant( wxString( "äöüÄÖÜß", wxConvUTF8 ) ) );
    

    Bekomme ich das Feld wunderbar befüllt.
    Das Problem ist nun, ich habe durch den SOAP Webdienst keinen Einfluss auf die Daten, die mir matchdata[ i ] zurück gibt...

    Besteht da noch irgendeine Möglichkeit, die Felder zu befüllen bzw. die Umlaute richtig darstellen zu lassen?

    Gruß
    Danny.



  • Ein

    wxString::From8BitData( matchdata[ i ]->nameTeam1->c_str() )
    

    hat das Problem gelöst...


Anmelden zum Antworten