Я вижу, что есть много вопросов, связанных со строками и широкими строками. Но поскольку ни один из них не дает мне информацию, которую я ищу... Я публикую новый вопрос.
У меня есть этот код...
std::string myName("vikrant");
std::cout<<myName<<std::endl;
std::wstring myNameHindi = L"मुरुगन";
std::wcout<<myNameHindi<<"-----"<<myNameHindi.size()<<std::endl;
std::wcout<<L"मुरुगन"<<std::endl;
std::string myNameHindiS = "मुरुगन";
std::cout<<myNameHindiS<<"-----"<<myNameHindiS.size()<<std::endl;
когда я компилирую и запускаю этот код на моем RHEL-боксе (... (подключен через ssh, работает gcc 4.1.2), я получаю это o/p (обратите внимание, две средние строки не печатаются должным образом)
vikrant
.A0A(-----6
.A0A(
मुरुगन-----18
На моем ноутбуке Apple и одном из ящиков FreeBSD (через ssh) я не получаю o/p от кода w_*. Я только что получил первый и последний кауты, казненные викрантом मुरुगन-----18
Насколько я понимаю, если не указано, эти строки будут обрабатываться как UTF 8. и если строка может обрабатывать это, wstring также будет обрабатывать. Что-то не так в этом подходе? Некоторые вопросы по аддону: это просто проблема с отображением? или wstring не надежен в linux? Любая дополнительная информация также может помочь.