konvertieren von unicode, um char
Wie kann ich umwandeln eines Unicode-Zeichenfolge in eine char*
oder char* const
im embarcadero c++ ?
Von Unicode in welcher Region? Oder wenn unter windows die codepage? Was genau wollen Sie tun?
cplusplus.com/reference/clibrary/cstdlib/wcstombs ?
Embarcadero scheint bemerkenswert gut dokumentiert
Tut mir Leid, aber Sie offensichtlich nicht tatsächlich suchen Sie in der Dokumentation, die ich gefunden die genaue Seite, dass Adressen dieses Problem in weniger als 60 Sekunden. Als ein anderer meinte, Embarcadero macht einen tadellosen job für die Bereitstellung robuster Dokumentation mit entsprechenden Beispielen.
cplusplus.com/reference/clibrary/cstdlib/wcstombs ?
Embarcadero scheint bemerkenswert gut dokumentiert
Tut mir Leid, aber Sie offensichtlich nicht tatsächlich suchen Sie in der Dokumentation, die ich gefunden die genaue Seite, dass Adressen dieses Problem in weniger als 60 Sekunden. Als ein anderer meinte, Embarcadero macht einen tadellosen job für die Bereitstellung robuster Dokumentation mit entsprechenden Beispielen.
InformationsquelleAutor JJunior | 2012-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Unicode-string" ist nicht wirklich spezifisch genug, um zu wissen, was Ihre Quelle der Daten ist, aber Sie meinen damit wahrscheinlich "UTF-16-string gespeichert, als wchar_t-array", denn das ist was die meisten Menschen nicht wissen, die richtige Terminologie zu verwenden.
"char*" ist auch nicht genug, um zu wissen, was Sie wollen, Ziel, obwohl, vielleicht ist "embarcadero" hat einige übereinkommens. Ich werde einfach angenommen, Sie möchten die UTF-8-Daten, es sei denn, Sie erwähnen, sonst.
Außerdem werde ich Grenze mein Beispiel was funktioniert in VS2010
Dies setzt Voraus, dass wchar_t-strings sind UTF-16, wie bei Windows, aber sonst ist portabler code.
'ANSI-string' ist immer noch unzureichend, selbst wenn wir die Tatsache ignorieren, dass das American National Standards Institute hat nie definiert, wie ein Ding, und erkennen, dass thay sind bezugnehmend auf das, was Microsoft bezeichnet mit diesem Namen; Microsoft definiert eine Reihe von "Codepages", die mit so genannten "ANSI" - strings.
InformationsquelleAutor bames53
Diese wird scheitern, behandeln alle Zeichen außerhalb des Gebietsschemas verwendet wird, und da gibt es kein Gebietsschema unter Windows, unterstützt alle Zeichen (z.B. UTF-8-Gebietsschema unterstützen würden alle Zeichen)
AnsiString
einfach nicht bieten verlustfreie Konvertierungen für alle Eingänge auf Windows.Beachten Sie, dass Sie können geben Sie die codepage für ein AnsiString: docwiki.embarcadero.com/RADStudio/Seattle/en/... Allerdings haben Sie Recht, dass die Konvertierung von Unicode zu ANSI-kann (und wird Häufig) verlustfrei.
InformationsquelleAutor Tuomas
Können Sie interpretieren jedes array als ein array von char-Zeigern legal. Also, wenn Ihre Unicode-Daten kommt in 4-byte-code-Einheiten wie
dann können Sie darauf zugreifen, als ein char-array:
Diese Weise können Sie überprüfen, dass die einzelnen bytes von Ihrem Unicode-Daten.
(Das hat natürlich nichts zu tun mit die Konvertierung der Codierung Ihren text. Für, die, Nutzung einer Bibliothek, wie
iconv
oder ICU.)InformationsquelleAutor Kerrek SB
Wenn Sie mit Windows arbeiten:
Können wir nicht verwenden, std::wstring_convert, darum ist nicht verfügbar in MinGW 4.9.2.
InformationsquelleAutor AWalkmen