1

ビットマップ ファイルのデータを含む std::string Buffer を std::wstring に変換しようとしています。

を使用しMultiByteToWideCharていますが、最初の文字に遭遇した後に関数が停止するため、機能しません'\0'。文字列の終わりとして解釈するようです。

長さパラメーターとして -1 を渡さずに、std::string-Buffer 内のデータの実際の長さを渡すと、元の文字列のその位置に明確に表示されなかった文字で Unicode 文字列が台無しになります。 .

独自の変換関数を作成する必要がありますか? または、特別なシンボルが正しく変換されないため、データをカジュアルな文字配列として保持する必要がありますか?

よろしく

4

1 に答える 1

1

このアプローチでは失敗することたくさんあります。特に、気付かないうちにデータに余分なバイトが追加される場合があります。

あなたの唯一の選択肢が。を取るのは奇妙ですstd::wstring()。これが自家製のライブラリである場合は、手間をかけて新しい関数を作成する必要があります。そうでない場合は、自分で書く前に、これ以上適切なものがないことを確認してください。

于 2012-08-23T21:52:51.197 に答える