我可以看到有很多与字符串和宽字符串相关的问题。但由于他们都没有给我我正在寻找的信息......我发布了一个新问题。
我有这个代码...
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
在我的苹果笔记本电脑和 FreeBSD(通过 ssh)盒子之一上,我没有从 w_* 代码中获得 o/p。我只是让第一个和最后一个 cout 被执行 vikrant मुरुगन--18
我的理解是,如果未指定,这些字符串将被视为 UTF 8。如果字符串可以处理它,wstring 也会处理。这种方法有什么问题吗?一些插件问题是......它只是一个显示问题吗?或者 wstring 在 linux 上不可靠?任何其他信息也可能有所帮助。