• ベストアンサー

HTMLファイルからcharsetの文字列だけを抜き出すにはどうすれば

HTMLファイルからcharsetの文字列だけを抜き出すにはどうすれば良いのでしょうか? 本文がHTMLで構成されているメールからcharset=文字コード(Shift_JIS、UTF-8など)の 文字コード部分を抜き出したいのですがどうすれば良いでしょうか? もちろんcharset自体が存在しない場合もあるため、ないときの処理も書かなくては ならないです。(存在しない時にはメールヘッダからの文字コードを渡します) 環境はVista Home Premium、Visual Studio2005(Std)上のC#です。

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

  • ベストアンサー
回答No.1

私は.Netなのですが まずHTMLファイルあからタグの配列を作り {<>,</>,<>,<>} 各値に対して正規表現を使用して抜き出しています HTMLファイルの中に複数文字コードがありそれぞれを取得したい場合です 前提としてひとつしか文字コードがない場合は配列にする必要はありません C#の正規表現はここにあります http://www.atmarkit.co.jp/fdotnet/dotnettips/585regexreplace/regexreplace.html http://dobon.net/vb/dotnet/string/regexmatch.html 正規表現はここをいつも参考にしています http://hodade.adam.ne.jp/seiki/page.php?s_htmltag .Netですが正規表現の使い方です クラスは同じなのでおそらく同じ使い方で問題ないと思います http://blog.goo.ne.jp/nsl_net/e/b1b212f571a7a009dbedd7c1b9f147b3 .Net C# には RegexOptions がついています この設定の仕方で文字列が取れたり取れなかったりするので 色々設定を変えてみてください

mizuki_sak
質問者

お礼

とりあえず正規表現のマッチングを使ってやりたかったcharsetの取得か出来ました。 回答ありがとうございました。

mizuki_sak
質問者

補足

こっちのほうかなぁ…と思いました。 http://www.atmarkit.co.jp/fdotnet/dotnettips/579regexmatch/regexmatch.html ちなみにこの下の部分でタグ抜き作業(@ITの記事参考)をしているので 正規表現は一応使ってはいるのですが…。

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

その他の回答 (1)

回答No.2

追伸です charsetの部分を取り出す正規表現のサンプルが CodeZineにあります 参照URLの4ページ目のMailクラスの使用例のサンプルソースが参考になると思います ZIPのなかにC#のソースがあると思いますので参考にしてみてください

参考URL:
http://codezine.jp/article/detail/477
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HTMLとCSSのcharset

    HTMLとCSSのcharset(文字コード)は揃えたほうがいいのでしょうか? HTMLはShift-jisですが、CSSはUTF-8です。 本来はサイト全体をUTF-8にしたいのですが、事情があって一部のHTMLだけShift-jisにせざるをえないのです。 とあるサイトで、揃えないと一部のブラウザで文字化けがおこる可能性がある・・・と書いてあるのを見かけましたが、一部のブラウザとは一体どのブラウザのどのバージョンなのかはっきり書いておらず、曖昧すぎてあまり参考になりません。 実際のところはどうなのか、詳しい方いらっしゃいましたらどうぞよろしくお願い致します。

  • HTMLの文字化け

    自分で立ち上げたサーバへWindoswで作成したHTMLをアップしてブラウザから表示の確認をしてみたところ、日本語が文字化けてしまいました。 ヘッダーには <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> として、文字コードをUTF-8にしてあるのですが、この部分を <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" /> とShift-JISにしてみると、日本語の文字化けが解消します。 できればcharset=UTF-8の状態で文字化けせずに表示してくれるようにしたいのですが・・・ どなたか原因がお分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。 テキストエディタはK2Editorを使用しており、「保存時の文字コードと改行種類の変更」でHTMLファイル自体の文字コードは「Shift-JIS」、改行コードは「CRLF」としております。 サーバは、CentOS5.4を使用しており、 コマンドで # printenv | grep LANG の結果は、 LANG=ja_JP.UTF-8 となっております。

    • ベストアンサー
    • HTML
  • HTMLに関する質問です。

    HTMLに関する質問です。 漢字コードの変更方法を教えてください。 charset=Shift_JIS を charset=utf-8 に変更するには この部分のソースを入れ替えるだけではダメみたいです。 (入れ替えただけでは、文字化けしました。) 上と逆で charset=utf-8 から charset=Shift_JIS に変更する方法も教えてください。 手順としては、同じだと思いますが・・・。 宜しくお願い申し上げます。

  • HTMLの文字コードに関する素朴な疑問です!?

    HTMLの文字コードに関する素朴な疑問です!? HTMLファイルの書き方は、時とともに変遷してきました。 ■CSSの場合は、 <style type="text/css> ~</style> ↓ <style> ~</style> ■JavaScriptの場合は、 <script type="text/javascript> ~</script> ↓ <script> ~</script> ■文字コードの場合は、 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> ↓ <meta charset="UTF-8"> 調べてみたところ、 ・日本では、「 UTF-8 」、「 Shift_JIS 」、「 EUC-JP 」の  3つがよく使われている文字コードである。 ・Shift-JISでの日本語1文字あたりのデータ量は2バイトだが、  UTF-8は1文字あたり3バイト必要である。  UTF-8よりもShift-JISの方が消費データが少なくて済む。 それにつけても、文字コードは何故 ・一本化しないのだろうか? ・一本化したら困ることでもあるのだろうか?

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

    ウェブサイトの文字コードは何を使うのが、よいのでしょうか?現在の自分のサイトはShift_jisですが、最近のサイトはUTF-8が多いようです。Shift_jis のHTMLをUTF-8に変更する場合、HTMLにどういった変更が必要なのでしょうか?また、UTF-8に変更するメリットはなんでしょうか?

    • ベストアンサー
    • HTML
  • HTML文字コード

    こんにちは。 文字コードのお話です。 PHPでテンプレートを呼び出して表示するのですが、UTF-8で指定しているのに、Shift-Jisで出力されている様子です。 HTMLのmetaタグで宣言しているのに、HTMLファイルだけがS-JISです。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> PHP側ではUTF-8を指定していて、そのページではきれいに表示されている文字と、文字化けしている文字がごちゃごちゃです。 htaccessの設定という可能性もあるでしょうか? HTMLに関連する問題だと思うのですが、ご存じの方いらっしゃいましたらご教授お願いします。。

    • 締切済み
    • PHP
  • 文字化けを修正する方法

    dreamweaverMXでホームページを作っています。 最近、文字コードをcharset=Shift_JISからcharset=UTF-8に変更したら文字化けが起きてしまい、修正する方法がわからず困っています。 具体的には、テンプレートファイルで文字コードをcharset=Shift_JISからcharset=UTF-8に変更し、更新をかけました。 テンプレートファイルは文字化けしていませんが、更新した他のhtmlファイルはすべて文字化けしてしまっています。 CSSファイルにもちゃんと@charset "utf-8";と記入してあります。原因がわかりません。 どうすればよいのでしょうか?

    • ベストアンサー
    • HTML
  • HTMLがSHIFT-JISにならない

    いつもお世話になります<(_ _)> 携帯電話用サイトを作っているのですが、HTMLファイルの最初に <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> と設定しても、PCでアクセスした時にUTF-8で表示され文字化けされてしまいます。 HTML自体の文字コードはSHIFT-JISで保存されております。 手元に携帯電話がないので、まだ携帯表示は確認していませんが、スマートフォン(Android)で見ても文字化けしています。 なぜcharsetでSHIFT_JISを指定し、ファイルもSHIFT_JISで保存しているのにも関わらず、UTF-8になってしまうのでしょうか・・・? 同じような現象をご存じのかた、是非ともお力添え下さい。 宜しくお願い致します<(_ _)>

    • ベストアンサー
    • HTML
  • HTMLモードでの文字コードの変更について

    ホームページV4 Shift_JIS を UTF-8 に変更するにはどのようにすればいいのですか? <meta charset="shift-JIS"> → <meta charset="UTF-8">との回答していただきありがとうございます。ただ <meta http-equiv="Content-Type" content="text/html; ch。arset=Shift_JIS"> をどのように変更したらいいのかわかりません。HTMLモードで書き換えても文字化けします。よろしくお願いします。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 文字化けしていたHTMLファイル

    Windows 8.1 秀丸 8.34 HTML 4.01のコードです。 ある日秀丸でHTMLファイルを開いてみたら、日本語の部分が文字化けしてしまっていました。 どの文字タイプを指定しても解消しません。 今思えば、以前ファイルを保存する時に変な保存の仕方をしたかもしれません。 (もしかしたら文字化けさせたまま保存させてしまったかも) HTMLファイルの時点で文字化けしているファイルを元に戻す方法は有りませんか? どのブラウザのエンコードも全く意味ないです。 いくつかのエディタでも駄目でした。 文字タイプに影響していそうなHTMLコードを引用しておきます。 ---------------------------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/Transitional.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" Content="text/html;charset=Shift_JIS"> css側 charset "Shift_Jis"; -----------------------------------------------------------------------------------