wstring
-
Hallo,
kann mir jemand erklären warum ich bei diesem Programm:
int main(int argc, char** argv) { std::wstring wstr(L"A€A"); std::wcout << "Content : " << wstr << std::endl; std::string str("A€A"); std::cout << "Content : " << str << std::endl; }folgenden Output bekomme (Linux shell):
AA
A€AEigentlich habe ich erwartet, dass wsting mit wstrings umgehen kann :).
Gruß,
hanebuechen
-
ich vermute weil das programm auf multibyte compiliert wurde:
int main(int argc, char** argv)
-
multibyte?
-
Es wird wohl eher an einer Implementierung von std::codecvt die einfach nicht alles umwandelt, wie man es sich selber wünscht. Meistens muß man sagen, was man am Output haben will. Die meisten codecvt-Implementierungen schmeissen alles weg, was größer 255 ist. Außerdem, wie hast du das Euro-Zeichen eingegeben? Man sollte alles >128 über den \uXXXX eingeben.