Visual Studio 2010を使用して、Windows7のアンマネージC++アプリにHunspellを統合しました。
私は英語で機能するスペルチェックと提案を持っていますが、今はスペイン語で機能するようにしようとしています。スペイン語の提案を受け取るたびに、アクセント文字を含む提案が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
変換コード用にそれを何かに変換する方法がわかりません。