Sonderzeichen/Umlaute in der MySQL C-API



  • Ich habe ein kleines Problem. Ich weiß nicht wie man z.B. über den mysql_query()-Befehl der so viel ich weiß nur char* annimmt Umlaute übertragen kann. Gibt es dafür eine spezielle Syntax?



  • Sorry, aber ich sitze momentan verzweifelt vor meinem Computer.
    Ich fasse mal zusammen. Ich muss einen wchar_t-string in einen char-string umwandeln. Aber der char-string ist kein normaler char-string im ascii-format, nein der char-string ist dann im utf-8 format. Hääääääääääääääää???!!! Dann gibt es die Funktionen iconv die (bei mir zumindestens) keinen wchar_t annimt. Zu der funktion habe ich auch noch keine beschreibung gefunden wie die funktionieren soll. Dann habe ich eine Funktion mit Beschreibung und Code-Beispiel sogar im zusammenhang mit einer mysql-anfrage gefunden, die gibt es aber leider nur für windows. Zu ICU habe ich überhaupt nichts gefunden. Wie soll das funktionieren.
    BITTE RETTET MICH!!!



  • Wie wandelst du deinen String denn um, und wieso überhaupt wchar_t?



  • UTF-8 sollte eigentlich zu normalen chars comatibel sein, wenn es ausgerechnet keine sonderzeichen sind.

    http://www.cplusplus.com/reference/clibrary/cstdlib/wcstombs/
    Bin kein experte, also...



  • Oh man,genau das Problem habe ich auch 😞

    bei einer abfrage wie "select text from db where text like '%blöd%'"
    bekomme ich im sqliteman die gewünschen ergebnisse, über die C-Api
    im gcc aber nicht!
    dass und wie man umlaute in der konsole ausgeben kann/ausgibt weiß ich ja, aber wie ich sql dazu bringe, das Statement umzusetzten ist mir völlig schleierhaft 😞



  • SET NAMES 'UTF-8'
    

    LG



  • Ach Mist, habe vergessen zu erwähnen, dass ich SQLite3 benutze... Da gibt es diesen Befehl scheinbar nicht... auch seltsam ist, dass ich die Datenbank mit sqlite_open() öffen, was eigentlich automatisch UTF-8 festlegt!?
    Kann mein Problem auch mit dem Compiler (GCC 4.6.0 (g++)) zusammenhängen?



  • AHA!!??

    Jetzt habe ich es...
    Das Encoding der Source-Datei selber ( 😕 ) muss auf Unicode eingestellt sein 😡


Anmelden zum Antworten