0

VC ++のドキュメントに次のように書かれているのは非常に奇妙です:(http://msdn.microsoft.com/en-us/library/tzf8k3z8 (VS.90).aspx )

"タイプbasic_filebufのオブジェクトは、タイプパラメータElemで指定されたchar_typeに関係なく、タイプchar *の内部バッファで作成されます。これは、Unicode文字列(wchar_t文字を含む)が以前にANSI文字列(char文字を含む)に変換されることを意味します。内部バッファに書き込まれます。Unicode文字列をバッファに格納するには、タイプwchar_tの新しいバッファを作成し、basic_streambuf :: pubsetbuf()メソッドを使用して設定します。この動作を示す例を確認するには、以下を参照してください。」

なんで?

4

1 に答える 1

0

これは単なる推測ですが、プログラムの内部がwchar_t(16ビットUnicode文字)であるが、出力されるほとんど/すべてのテキストファイルが8ビットANSIである一般的なケース(少なくともWindowsでは)を処理する方法である可能性があります。

ほとんどのテキストファイルは、本当にそうである必要がない限り、依然としてANSIであるように見え、多くのプログラムはUnicodeテキストファイルを適切に処理できません。

変換されるのは本当にANSI文字列なのかUTF-8文字列なのか...

于 2010-11-16T17:41:14.763 に答える