000
05.04.2016, 15:53 Uhr
Valyse
|
Hallo zusammen,
ich hoffe ich habe das hier zum einem unter der richtigen Kategorie eingestellt und es gibt hier jemanden der mir helfen kann. Suchfunktionen und Google habe ich die letzten drei Tage schon ausgiebigst genutzt aber noch nicht wirklich was gefunden.
Ich bin im Bereich C++ ein absoluter Neuling, und wurde jetzt in ein bestehendes unkommentiertes Programm geschmissen.
Meine Anforderung besteht darin das ich Daten die aus einem Global einer M Datenbank welche auf UTF-8 eingestellt ist genau so in der Oberfläche wiedergeben muss und auch den Weg zurück wieder abspeichern muss.
Ich bin soweit das ich festgestellt habe das im gesamten Quellcode keine WStrings verwendet werden (sehr altes sehr historisch gewachsenes Programm) sondern nur normal String.
Nun bekomme ich von der Datenbank aber solche Dinge zurück wyściełający, das sieht im Debuger dann so aus wyÅ›cieÅ‚ajÄ…cy do zacisków. Ich bin nun mittlerweile auf die Libery von ICU gestoßen komme da aber auch nicht wirklich weiter.
Mein Wunsch wäre eigentlich etwas wo ich Kryptisch rein geben kann als CString und dann ein bisschen weniger Kryptisch wieder raus bekommen im gleichen Format. Und um mein Problem komplett zu machen muss das was ich raus bekomme auch noch im UTF-8 Format an den Global zurück gegeben werden.
Was ich für die Umwandlung bisher gefunden hatte war hier aus dem Forum.
TCHAR* m = new TCHAR[strlen(szResult) + 1]; WCHAR* w = new WCHAR[strlen(szResult) + 1]; strcpy(m, szResult); MultiByteToWideChar(CP_UTF8, 0, m, -1, w, strlen(szResult)); WideCharToMultiByte(CP_ACP, 0, w, -1, m, strlen(szResult), 0, 0); CString AnsiText = m; delete[] m; delete[] w; return AnsiText;
Klappt soweit super zumindest bis zu dem Punkt wo die Polnischen Zeichen ins spiel kommen, da wird dann wieder falsch umgewandelt.
Also falls irgendwer auch nur den Hauch einer Idee hat ich bin über jede Hilfe dankbar. |