• ベストアンサー

エンコードについて(初心者です。。

VS.NETにてプログラムを作っています。 UTF-8にてエンコードして保存されたxmlファイルをよんで、画面上に表示しようと思っています。 とりあえずとして、CStdioFileを使ってCStringによみこんでAfxMessageBoxに出してるんですが 完全に文字化けしてしまいます。ほかのエンコードを試した結果、ANSIに変換すれば良いことまでは たどり着けました。このサイトでのUTF-8エンコードの変換についての過去の質問は見たんですが、 情報が古いせいか(理解力がないのか汗)得た情報をヘルプで検索してもうまく出ません。 どうすればうまく変換できるんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

StreamReaderクラスを使えば、エンコード指定してのファイル読込は簡単です。 StreamReader(Stream, Encoding) また、 System.xmlのクラス XmlDocumentを使ってloadすれば、エンコーディングについてはXMLの宣言によって自動的に読み込まれますので、考えなくて良いです。

exmotions
質問者

お礼

ご回答ありがとうございます! C++で書いてるんですが、ヘルプにはVBとC#しかサンプルが無くて 名前空間の追加の仕方がよくわかりません。。 #using <mscorlib.dll> #using <System.Xml.Dll> using namespace System::Xml; を該当ヘッダに追加してコンパイルオプションを変更で合っているんでしょうか?

exmotions
質問者

補足

いまいろいろと調べて思ったんですが、 ひょっとして.NETFrameworkのライブラリは、C#で無いと使えないんでしょうか・・・? だとしたら別の方法を教えていただきたいです。。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>ヘルプにはVBとC#しかサンプルが無くて そんなことないと思いますよ >.NETFrameworkのライブラリは、C#で無いと使えないんでしょうか・・・? もちろんVC7で使えますよ インストールされているヘルプにも載っていると思いますが、 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemxmlxmldocumentclassctortopic1.asp にC++でDTDありのXMLを読込して全体をコンソールに出力するサンプルがあります。 そのまま >cl sample.cpp /clr でコンパイルして実行できました

exmotions
質問者

お礼

たびたびの回答ほんとにありがとうございます。 マネージ拡張をしていなかったのでできなかったみたいです。 無事名前空間を読み込めました。 本当にいろいろと勉強になりました。。。 ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A