locale-abhängige Konvertierung zwischen std::string und std::wstring
-
Ich versuche irgendwie den Übergang zwischen std::string zu machen, der Daten in der locale-Abhängigen Zeichenkodierung enthält und einem std::wstring.
Nun wüsste ich, wie ich mit Funktionen in der glibc auf C-Ebene zwischen char* und wchar_t* strings konvertiere, aber es kann ja eigentlich nicht sein, dass ich die Konvertierung unter C++ so zusammenhacken muss und mich von der glibc damit abhängig mache.
Ich habe mich nun mit Google schon einige Zeit abgemüht herauszufinden wie ich mit Standard-C++ die Konvertierung zwischen std::string und std::wstring mache. Aber wirklich schlau geworden bin ich noch nicht.
Außerdem frage ich mich noch: Ist die in std::wstring benutzte Zeichenkodierung als implementierungsbedingt aber fest auf einer Plattform zu betrachten oder ist die Zeichenkodierung in std::wstring auch locale-abhängig?
-
Hier ein Beitrag, der Dein Thema tangiert.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-155609-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html
-
Helmut S. schrieb:
Hier ein Beitrag, der Dein Thema tangiert.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-155609-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.htmlHallo Helmut, danke für deinen Tipp. In dem Beitrag wird allerdings WideCharToMultibyte benutzt, was AFAIK eine Windowsfunktion ist. Ich hätte halt gerne eine Lösung, die mit ANSI C++ auskommt.
-
Mit Hilfe der Template-Klasse codecvt kan von einem zum andern Zeichensatz konvertiert werden.
mfg
-