UnicodeString zu char * (mit Codepage-Konvertierung)



  • Hallo,
    ich versuche seit Tagen die Funktionen einer DLL zu nutzen, schaffe es aber nicht. Diese DLL soll Japanische Zeichen in unser Alphabet (Aussprache) umwandeln.
    Es wird ein char* mit der Codierung "Shift-JIS" oder "EUC-JP" erwartet und gleiches als Ergebnis auch zurückgeliefert. Ich muss also von Unicode nach char* (SJIS) wund wieder zurück nach Unicode.

    Die DLL erwartet folgenden Aufruf (aus der .h-Datei):

    char *kakasi_do PARAMS((char *str));
    

    Ich schaffe es aber leider nicht aus einem UnicodeString ein char * mit der richtigen Codepage zu machen, ja noch nicht mal aus einem AnsiString<20932>...

    Ich habe unter den Projektoptionen beim Radstudio 2009 - Compiler->Erweitert bereits die Codeseite 20932 eingetragen.

    //UTF8String utf8 = "<japanische Zeichen hier>";
    //WideString nn=L"<japanische Zeichen hier>";   //nn.c_bstr()
    AnsiStringT<20932> sjis = L"<japanische Zeichen hier>";
    ShowMessage(sjis);    //noch echte japanische Zeichen
    char* dst =sjis.c_str();
    char* sepStrSJ = NULL;
    ShowMessage(dst);     //hier schon Schrott
    sepStrSJ=kakasi_do(dst);
    ShowMessage(sepStrSJ);//hier auch Schrott, aber anderer Schrott; irgendwas hat die DLL gemacht.
    

    Hier schreibt jemand, dass er dass im c++ builder schonmal geschafft hat, verschweigt aber leider woher er die Funktion "CodePageConverter::fromUnicode" hat... 😞
    http://stackoverflow.com/questions/6442397/japanese-to-romaji-with-kakasi

    Kann mir jemand sagen was ich falsch mache?

    Grüße
    Robin

    PS:
    Wieso kann ich eigentlich trotz "Passwort vergessen" und neuem Passwort nicht ins Forum einloggen? 😞



  • Hallo,

    hat sich erledigt, ich dämlicher Flanders hatte doch glatt vergessen, das Ganze wieder zurück in Unicode zu verwandeln....

    [...]
            AnsiStringT<20932> ende(sepStrSJ);
    	ShowMessage(ende);
    

    Grüße
    Robin


Anmelden zum Antworten