我已使用 Visual Studio 2010 将Hunspell集成到 Windows 7 上的非托管 C++ 应用程序中。
我有适用于英语的拼写检查和建议,但现在我正试图让事情适用于西班牙语并遇到一些障碍。每当我收到有关西班牙语的建议时,带有重音字符的建议都无法正确翻译为std::wstring
对象。
Hunspell->suggest
以下是从该方法返回的建议示例:
这是我用来将其转换std::string
为std::wstring
std::wstring StringToWString(const std::string& str)
{
std::wstring convertedString;
int requiredSize = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, 0, 0);
if(requiredSize > 0)
{
std::vector<wchar_t> buffer(requiredSize);
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, &buffer[0], requiredSize);
convertedString.assign(buffer.begin(), buffer.end() - 1);
}
return convertedString;
}
在我运行完之后,我得到了这个,最后是时髦的角色。
谁能帮我弄清楚这里的转换会发生什么?我猜测它与从 hunspell 返回的负字符有关,但不知道如何将其转换为std::wstring
转换代码的内容。