【发布时间】:2015-02-27 06:52:46
【问题描述】:
我收到String^,它在我的 C++ WinRT 组件中的 C# 组件回调中包含一些印度语言字符,该组件位于 Windows Phone 8 项目的 Cocos2dx 游戏中。
每当我将其转换为std::string 时,印地语和其他字符都会变成垃圾字符。我无法找到发生这种情况的原因。
这是一个示例代码,我刚刚在这里定义了 Platform::String^,但考虑到它是从 C# 组件传递给 C++ WinRT Component
String^ str = L"विकास, વિકાસ, ਵਿਕਾਸ, Vikas";
std::wstring wsstr(str->Data());
std::string res(wsstr.begin(), wsstr.end());
【问题讨论】:
-
你能把它保留为
wstring吗? -
@PeterTorr-MSFT
wstring内容与String^相同,但问题是在将其转换为std::string时会丢失非英文字符的编码,
标签: c# c++ windows-phone-8 cocos2d-x winrt-component