プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。
現在、VC++でプログラミングを行っておりますが、
日本語の文字列のファイル出力ができずに困っております。
参考にしたのは以下のサイトです。

http://sunafukin.jp/dannatti/software/vc/control …

作成したプロジェクトファイルは以下の設定です。

・Visual C++のプロジェクト「Win32」
・「Win32コンソールプロジェクト」
・アプリケーションの設定はWindowsアプリケーション
・文字セットにUnicodeを選択

文字セットにUnicodeを利用しなければ、日本語の文字列も正常に出力されるのですが、Unicodeを利用すると日本語が全て「?」と表記されてしまいます。

この「?」が出てしまう問題の解決方法をご存じの方がいらっしゃいましたら、ご教授宜しくお願い致します。

A 回答 (4件)

>_tfopen_s(&fp, _T("c:\\text.txt"), _T("w"));


の場合、Unicode文字セットを使うでも、マルチバイト文字セットを使うでも
出来上がるファイルの文字コードはCP932のものになります。
決してUnicodeの文字コードでのテキストファイルができるわけではありません。

ccs=UNICODEのように第3引数に指定し、Unicodeの文字コードでのテキストファイルを出力させます。

http://msdn.microsoft.com/ja-jp/library/z5hh6ee9 …
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
ありがとうございます。

ご教授頂いたやり方で問題を解消できました。
CP932というものの存在を初めて知りました。勉強になります。

ありがとうございました。

お礼日時:2009/07/23 22:54

プログラムは


http://sunafukin.jp/dannatti/software/vc/control …
こちらと一字一句まったく同じなのでしょうか?
私の環境(VC++.2005,Win2000)で試したところ、
2006
3.141590
a
文字列
というファイルがちゃんと作成されましたが。
    • good
    • 0
この回答へのお礼

ご協力いただきありがとうございました。
bluecampusさんからご教授頂いた方法で解消することができました。

お礼日時:2009/07/23 22:56

>バイナリエディタ(Unicode対応)で開いた場合も同様に?マークで表示されてしまいます。



そうじゃなくて、バイナリ値のほうはどう表示されているのでしょうか?

この回答への補足

申し訳ありません。知識が乏しくて。

バイナリ値とは、16進数で表記される値のことで宜しいでしょうか?
それでしたら、?と表記される箇所は全て「3F」と表記されます。

補足日時:2009/07/15 13:39
    • good
    • 0

>Unicodeを利用すると日本語が全て「?」と表記されてしまいます。


ファイルの内容の確認には、何をお使いでしょうか。

VCのエディタで開いたり、バイナリエディタで開いた場合はどうなりますでしょうか。

あと、OSとVCのバージョンも詳しくお願いします。

この回答への補足

ご回答ありがとうございます。
内容の確認はノートパッドを利用しています。
VCのエディタ、バイナリエディタ(Unicode対応)で開いた場合も同様に?マークで表示されてしまいます。

OSはWindows XP、VCのバージョンはVisualStudio2005です。

補足日時:2009/07/15 12:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!