HTMLとPHPファイルのエンコードについて

このQ&Aのポイント
  • DreamWeaverと外部エディタを使用してHTMLとPHPファイルを作成する際のエンコードについて設定しているが、問題はないか
  • DreamWeaverの環境設定で指定した初期エンコードタイプがコードに反映されるかどうか
  • DreamWeaverで作成したフォームのデザインをコードに切り替える際にDOCTYPE宣言を削除しても問題はないか
回答を見る
  • ベストアンサー

HTMLとPHPファイルのエンコードについて

【自分のしたいこと】 入力フォームなどのHTMLのデザイン(テーブルやその他のコントロール)だけを Adobe DreamWeaverを採用して作成し、その他の修正などは外部エディタ(秀丸など) で行いたいのです。PHPファイルに関しては、外部エディタで手書きでもかまわないと 思っています。 ※プロバイダーはニフティのLACOOCANを利用しています。 ---------------------------------------------------------------------- 【質問】 (1)その場合に、DreamWeaverの編集>環境設定メニューで、自分は HTMLファイル→HTML 4.01 トランジショナル エンコーディング初期設定:日本語(シフト JIS) エンコーディングが指定されていない既存ファイルを開くとき:チェックしてる UniCode正規形:C(標準分解の後で標準合成を適用) PHPファイル→初期設定ドキュメントタイプ:なし エンコーディング初期設定:日本語(EUC) エンコーディングが指定されていない既存ファイルを開くとき:チェックしてる という設定にしているのですが、これで問題ないのでしょうか? 以前読んだ解説本によれば、PHPファイル保存時に ・ファイルの種類:すべてのファイル ・エンコードの種類:日本語(EUC) ・改行=LF にしろと書いてありましたし、この設定でLACOOKANのWEBサーバーで ちゃんと動作していました。 普通、プロバイダーのサーバーマシンなどの汎用コンピューターで標準採用されている エンコード方式がEUC-JP だからなのでしょうか。 (2)DreamWeaverの環境設定メニューで、初期エンコードタイプを指定すれば(たとえば、charset=utf-8)、その設定時に書いたコードのMETAタグで、 <meta http-equiv="Content-Type" content="text/html; charset=utf-8*"> となるのでしょうか。つまり、DreamWeaverの環境設定メニューで設定した値がコードに即反映される のでしょうか。 (3)DreamWeaverの作成したフォームのデザインを、コードに切り替えてみると <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> というのが、文頭についてきますが、このタグを自分で勝手に外しても問題ないのでしょうか。 (4)以上、(1)から(3)について、回答頂き納得したうえで、上記の「自分がしたいこと」 が可能かどうかお答えお願いします。

  • PHP
  • 回答数1
  • ありがとう数8

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

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

【1】 PHPで文字列を扱うならば、あらゆる文字コードを全て「UTF-8(BOM無し)」、改行コードを「LF」に統一しましょう。EUC-JPやShift_JISは論外です。 UTF-8が優れている理由 http://www.softel.co.jp/blogs/tech/archives/525 UTF-8のシェア http://news.mynavi.jp/news/2012/02/09/027/ 【2】 DreamWeaverは所持していないので分からないのでお答えできませんが、そもそもPHPコードを扱う場合はmetaタグで文字コードを指定するよりもheader関数を使って(1文字目を出力する前に) header('Content-Type: text/html; charset=utf-8'); として直接ブラウザに指示を送る方が望ましいです。metaタグによる指定方法はPHPを利用できないときの補助手段として存在します。 【3】 今時「HTML4.01」なんて時代遅れなので、「HTML5」または「XHTML5」で書きましょう。 [HTML5の場合] <?php header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html> <html lang="ja"> <head> <title>...</title> </head> <body> </body> </html> [XHTML5の場合] XHTMLの書き方と留意点 http://www.kanzaki.com/docs/html/xhtml1.html XHTML5 移行メモ http://kanow.jp/web/xhtml5-memo.xhtml <?php header('Content-Type: application/xhtml+xml; charset=utf-8'); ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja"> <head> <title>...</title> </head> <body> </body> </html> 【4】 可能でしょう。不可能になる理由がむしろ思いつきません。

beterugius
質問者

お礼

詳しいご説明、どうもありがとうございました。 これから実践してみます。

関連するQ&A

  • PHPプログラム内でHTML作成時の文字コード

    お世話になります。 PHPコード・及び内部エンコーディングはEUC-JPでプログラムを作成しています。 プログラムでHTMLファイルを作成する処理があるのですが、どうしてもEUC-JPで作成されてしまいます。 中身(<html>~)はmbstringできちんとShift_JISに変換して出力するのですが、ファイル自体の文字コードがEUC-JPで保存されているようで、ブラウザで表示するとエンコードがEUC-JPになって表示され、文字化けしております。 ブラウザのエンコードをShift_JISに直せば文字化けしないで表示されるのですが…。 プログラムから作成したファイルをShift_JISで作成する方法をご教授いただけましたら幸いです。 php.iniの設定をいじる権限はありません。また、プログラムをShift_JISにする以外で方法をお教えいただけないでしょうか。

    • ベストアンサー
    • PHP
  • htmlを含まないphpファイルにもHTMLヘッダー内にエンコード形式を記述する必要はあるのでしょうか?

    私はフォームにデータを入力するファイル(enter.html)、それをチェックするファイル(check.php)及びデータをメールで送信するファイル(mail.php)を分離しています。 これらのファイルの内、ブラウザーにファイル内のHTMLコードが出力されるのは、データを入力するファイル(enter.html)だけです。 入力されたデータをチェックするファイル(check.php)及びデータをメールで送信するファイル(mail.php)は、phpのechoを使用して、入力エラーがあったり、メールが送信された場合にその旨のメッセージをブラウザーに表示しますが、HTMLは含みません。 そのため、データを入力するファイル(enter.html)には、<meta http-equiv="Content-Type" content="text/html; charset=utf-8">とエンコード形式(UTF-8)をHTMLヘッダー内に記述しているのですが、htmlを含まないphpファイル(check.php及びenter.html)にも<meta http-equiv="Content-Type" content="text/html; charset=utf-8">などのようにHTMLヘッダー内にエンコード形式を記述する必要はあるのでしょうか? よろしくお願いします。 キャサリン

    • ベストアンサー
    • PHP
  • 【Dreamweaver CS3】 PHPファイルを開くと勝手にエンコーディングが・・・

    Dreamweaver CS3で UTF-8でPHPをコーディングしているのですが PHPファイルを開くと 勝手にエンコーディングがシフトJISに変えられてしまって困っています。 現在はいちいちページプロパティで設定しなおしていますが、 再度開くとまたシフトJISに戻ってしまうので、ほんとうに困っています。 環境設定のエンコーディング初期設定には Unicode (UTF-8) が指定されていて、 その下の「エンコーディングが指定されていない既存ファイルを開くときに使用」のチャックは外してあります。 原因がわかるかたがいたら教えてください!

  • php.iniのエンコーディングの設定について

    現在、FedoraCore6、Apache2、PHP5、MySQLの環境で勉強をしているのですが、 それぞれに文字コードの設定がありますが、色々調べてみたものの、 どうもスッキリせずに分からない部分があります。 php.ini (1)mbstring.internal_encoding: PHPファイル作成するのに使用する文字コードを指定 (2)mbstring.http_input:HTMLファイルから呼び出されるとき、そのHTMLファイルと同じ文字コードを指定(html→phpへデータの受け渡し) (3)mbstring.http_output:PHPからHTMLファイルに出力する時にエンコードする文字コード(php→htmlへデータの受け渡し時にエンコーディングする文字コード) httpd.conf (4)AddDefaultCharset:Httpヘッダにつける文字コードの指定 my.cnf (5)default-character-set:MySQL内のデータの文字コード ここで、例えば、 HTMLファイルのフォームから入力したキーを元に、 PHPでmysqlの関数を使ってmysqlからデータを取得、HTMLへと出力するとした場合。 この(1)~(5)の文字コードの設定はどうかかわってくるのでしょうか?? また(3)と(4)の違いは、 (3)はhttpヘッダに文字コード指定をつけるだけに対して、 (4)は実際にエンコードしてhttpヘッダに文字コード指定をつけるのでしょうか? (3)と(4)の違いとは? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字化けしていた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"; -----------------------------------------------------------------------------------

  • Web標準のエンコードについて(Html,Java)

    Webアプリケーションのエンコードについて教えてください。  エンコードには「Shift-JIS」と「UTF-8」などがありますが、  Webアプリケーションの標準として主に使用されるコードは何でしょうか?  googleなら「UTF-8」、教えてgooなら「EUC」という風に指定が分かれているのですが、開発者側としては何を目的として意識してエンコードの指定を行うべきなのでしょうか?

    • ベストアンサー
    • HTML
  • PHP拡張子としてHTML型を使用したいのですが

    タイトルにも書いたように、 PHP拡張子としてHTML型を使用したいのですが、うまくいきません。 .htaccessファイルに AddType application/x-httpd-php .htm .html を記述し、転送の上、パミッションを644に設定しました。 ---- test.php ----------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-JP"> </head> <body> <?php print "hello"; ?> </body> </html> ------------------------------------------------- 上記 test.phpを.htaccessファイルと同じディレクトリに転送して実行すると正常に動くのですが、test.htmlにリネームすると、何も表示されません。 尚、.htaccess でベーシック認証はできますの、.htaccess自体は無効にはなっていないようです。 サーバーの環境は Apache 2.0.50 Fedora Core 1 kernel 2.4.22 よろしく、お願いいたします。

  • ApacheにてHTML・PHPファイルが文字化けします

    現在、業務の関係でHTML・PHPファイルをブラウザで表示させているのですが、あるファイル(HTML・PHP両方とも)のみ文字化けをおこしてしまうのです。 OS:TurboLinuxServer6.1 Webサーバ:Apache1.3.26 ブラウザ:Netscape4 PHP:PHP3.0.18 HTML・PHPファイルの上には「charset=Shift_JIS」と、すべてのファイルに記述しています。 PHPのiniファイル内の「i18~」もShift_JISに統一しています。 Apacheのhttpd.confの設定も行なったのですが、効果がありませんでした。 ちなみに、HTML・PHPファイルはWin→Linuxにコピーするとき、秀丸でファイル形式を「EUC(改行=lf)」で保存しました。(こうしないと、改行に変な文字がついてしまうので) gooで検索をかけたところ、ファイルのパーティションを705にかえる方法がありましたが、それも関係あるのでしょうか? なにか、よきアドバイスがあればお願いいたします。

    • ベストアンサー
    • HTML
  • Dreamweaverでエンコードとは?

    Dreamweaver 8初心者です。 自分の文章をコピペしたら下のような警告が表示されます。 「現在のエンコーディングでは文字を正しく保存できません。ntf-8…エンコードして…」 charset=Shift_JIS"を使用しています。

  • ファイルを開かずに、そのファイルのエンコード方式を変える方法はないでし

    ファイルを開かずに、そのファイルのエンコード方式を変える方法はないでしょうか? s-jisや、EUCなどのhtml/css/phpファイルが大量にあります。これを全てutf-8にしたいのですが、 どうすれよいでしょうか? メタタグ等は、 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> と一括置換すればよいのですが、 肝心のファイルは、一つ一つ開いていって、ひとつひとつutf-8で保存する方法しか知りません。 ファイルが大量にあるので、大変手間です。 もっと効率的にファイルのエンコード方式を変える方法はないのでしょうか? 誰か知っていたら、教えてください。