0

私の Windows アプリケーションは、_wpopen を使用してシステム コマンドを呼び出します。このコマンドは、fgetws を使用して wchar_t のバッファーに読み取ろうとする UTF8 応答を生成します。問題は、バッファの結果が正しくないことです。私のバッファーには 12 文字が含まれているため、文字幅に問題がある可能性があります。UTF8 では 4 文字しか含まれていないはずです。私は Microsoft Visual Studio 2010 を使用しています。

system コマンドが適切な出力を生成することを独自に検証しました。したがって、エンコーディングを台無しにするのは、どういうわけか読み取り操作です。何をすべきか?ありがとうございました!

4

1 に答える 1

0

fgetws関数は、ファイルをテキスト モードで開くかバイナリ モードで開くかに応じて、入力が MBCS または UTF-16 であると想定します。UTF-8 を処理しません。

代わりに、fgets を使用してから、UTF-8 から使用したいエンコーディングに明示的に変換してください。

于 2012-08-02T00:23:21.457 に答える