• ベストアンサー

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

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

  • エンコードについて

    phpでXMLやデータベースとの連携を実験中です。結果、連携はうまくいったのですが、文字のエンコードについて思うことがあります。連携によって引き出された情報はテキストとなってphp上に表示されますが、エンコードがどれもUTF-8となっています。その為文字化けが起こってしまい、右クリック>エンコード>Unicode(UTF-8)という手順でエンコード方法を変更する手間が発生してしまいます。 製作側の自分自身はもちろんのこと、これではユーザー側にも面倒な一手間をかけてしまうことになります。 なんとかこのエンコード方法を一般的なSJISにする方法はありませんでしょうか?

    • 締切済み
    • PHP
  • encoding="unicode"について

    ものすごい初歩的な質問で申し訳ないのですが、回答をお願いします。 <?xml version="1.0" encoding="Unicode" ?> と宣言したうえで、 UTF-16でエンコードして保存します(utf16_1.xml)。 このutf16.xmlをIE7で表示しようとすると正しく表示されますが、 UTF-8でエンコードして保存(utf8_1.xml)したものを IE7で表示しようとすると解析エラーとなります。 続いて<?xml version="1.0" encoding="UTF-16" ?>と宣言して、 UTF-16でエンコードして保存(utf16_2.xml)したものはIE7で正しく表示され、 <?xml version="1.0" encoding="UTF-8" ?>と宣言して、 UTF-8でエンコードして保存(utf8_2.xml)したものはIE7で正しく表示されます。 (まぁ、これは当たり前ですけど) ここからが本題なのですが、共にUTF-16で保存したとして、 encodingの指定でUnicodeと指定した場合と、UTF-16とした場合では、 表示結果は同じに見えますが、同じ意味となるのでしょうか? 両者間で文字化けなどが発生しないのかを確認したいです。 Unicodeの知識もあまりないので、その辺を踏まえて、 回答いただけますと幸いです。

    • 締切済み
    • XML
  • UTF-8等のエンコードでテキストファイル書込

    Windowsデスクトップアプリケーション(C++)で簡易的なアプリを作っています。[OK]をクリックするとEditコントロールに入力されたテキストがテキストファイルとして保存されますが、メモ帳で開くと文字化けします。エンコードを変えて再度読み込んだところ、読み込むことができたエンコードはUTF-16 LEでした。 UTF-8等のエンコードで書き込みすることはできるんでしょうか。

  • HTMLでどうしても文字化け(エンコード指定がなぜか反映されない)

    HTMLでどうしても文字化け(エンコード指定がなぜか反映されない) こんにちわ、私が所属しているところは例年活動の発表ページを作成して、今年は私が作成担当になっています。 去年先輩が作ったものを参考に作っているのですがサーバに上げて見たところエンコードがおかしいのかどうしても文字化けしてしまいます。 以下に詳しい症状を箇条書きします。どなたか知恵を貸してくださる方、よろしくお願いします。 自スペック:WindowsVista:FireFox3.6.9 サーバの設定:エンコードはutf-8で統一されている(去年のページもすべてutf-8でした) 症状:去年と同様にcssでもhtmlでもutf-8を文字エンコードに指定しているが文字化け、ブラウザのエンコードをshift_jisに変えると直る ↓ 指定エンコードをshift_jisに変えてみるがなぜかutf-8で表示される ↓ ソースをterapadでutf-8に変換してみてからソースを上げなおしてみる ↓ やっぱりエンコードをshift_jisに変えないと文字化けが直らない 去年のページではutf-8で問題なく表示されており、指定コードの周辺は変えていないのでなぜ文字化けするかが不明です。 日本語のエンコードは普通shift_jisであってutf-8ではないですよね? 去年のページがなぜutf-8でも普通に表示されているのか、それがなぜほとんど同じ構成の自分が作ったページではできないのか、知恵をお貸しください。

    • ベストアンサー
    • HTML
  • 文字エンコードについて

    文字エンコードについてなのですが、 コンピュータでは文字1つ1つに何バイトかの値が割り振られていて、 それを翻訳的なことをして表示していることがわかりました。 で、エンコードによって同じ文字でも内部の値が異なっているということもわかりました。 そこで質問なのですが、私はPHPを勉強しています。 それで文字列のエンコードを変更する関数があるのですが、それで文字列をUnicodeに変更したとします。 でも保存するときにANSIを選択した・・・これってどういうことなんでしょう? しかも、IE等のブラウザ上からも「表示」→「エンコード」→「Shift_JIS」と選択できます。 プログラムの上からのエンコーディング テキストエディタからのエンコーディング これはどちらが優先されているのでしょう。 エンコーディングについて詳しいサイトなどありましたらお願いします。

  • コンテンツのエンコードを変更するには

    IFRAME内に表示されるコンテンツにおいて、METAタグではcharset=Shift_JISとなっているのですが、ファイル自体はUTF-8で保存されています。 このためブラウザで表示すると文字化けが発生し、ブラウザの[表示]-[エンコード]メニューから手動でエンコードを変更しています。 IFRAME内のコンテンツに矛盾があるのですが、すぐに改善することができません。 このようなコンテンツを文字化けさせずに表示させることはできないでしょうか。 あるいは、JavaScriptなどでボタンなどをクリックすれば簡単にエンコードを変更することはできないでしょうか?

  • テキストファイルが文字化けし、エンコード不能に

     システムロケールを英語(英国)に変更したら、デスクトップ上に保存していたテキストファイルが文字化けしました。日本語に戻してもそのままの状態です。  IEでファイルを開き、右クリックでエンコードを選択して日本語(シフトJIS、EUC)に変換してもうまくいきません。  Web上の複数の変換ツール(UnicodeUTF-16やUTF-8を日本語に変換)にテキストを張り付けて変換しても同様です。  大切なファイルの2つが文字化けしたのですが、バックアップしておらず非常に困っています。  どなたか、元の文章を復元する知恵を貸していただけませんか?  一例として、1行目はこのようになっています。数字だけは、残っています。 「@ƒPƒ“ƒR[ƒRƒ€@@@2,205@‰»Ï•i 」  【備考】 ・ロケール変更は、BattleField4というゲームをする際に出るエラーを回避するために行いました。 ・IEでテキストファイルを開き、エンコードにカーソルをあわせると、「Unicode」に丸がついてグレーアウト表示されます。※Unicode(UTF-8)ではありません。

  • perl cgi のエンコード SHIFT->UTF-8

    こんにちは初心者です。 現在、既存のperl cgiをカスタマイズしております。 エンコードをshift_jisからUTF8に変更したいのですが、表示はCGI自体をUTF-8に変更し普通に見ることができるのですが、書き込みをしようとすると文字化けがおこります。 jcode.plをjcode.pmに変換すればよいらしいまでは分かったのですが、どこをどう変換すればいいのかjcode.pmのサイトを見ても理解できません。簡単な説明サイト紹介やアドバイス等をいただけませんでしょうか?

    • 締切済み
    • CGI
  • 文字コード??エンコードに合わせてください、とは

    HP作成で、いつもお世話になっております。 ある配布プログラム(テキスト指定関係)で、設置方法の説明がありました。 「これをダウンロードしたら、貴サイトのエンコードに合わせ、 後は保存してください」 この言葉の意味が理解できず、何をどうすれば良いのか分かりません。 私のサイトに、エンコードなるものがあるのでしょうか。 それは、どこを観れば分かるのでしょうか。 一応調べてみたところ、たぶん文字を化けさせない コードによる統一みたいなことだとは感じています。 ただ、どこを観て「エンコード」を調べるのかが 分からなくて苦心しています。 自分のサイトの、「エンコード」が分かる場所は? 大変素人質問ですみません。 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • VB.net・JavaScriptエンコードについて

    VB.net・JavaScriptエンコードについて JavaScriptでのエンコード、ではなく、 下記のページに表示されている「JavaScript」の書式が何なのかがわかりません。 http://encodemaniax.com/index/encode/utf8/44Oi44Oz44K544K%2C44O8 「モンスター」という文字列を訳があって 「"\u30e2\u30f3\u30b9\u30bf\u30fc"」という文字列に変換したいのです。 utf-8やShift-jisの変換はできるのですが、 上記ページの「JavaScript」が何を示しているのかわかりません。 自分でGoogleなどで調べても、検索用語が「JavaScriptエンコード」などとしか検索できないので 「JavaScriptでのエンコード」の結果が出てきてしまいます(汗 初歩的なことかもしれませんが、ご回答いただければ幸いです。 宜しくお願いいたします。