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