• ベストアンサー

HTMLの文字コードについて

こんばんは。 いつもお世話になっています。 現在、自分の趣味のサイトの再構築中です。 以前こちらで、xhtml 1.0 strictをutf-8で作成すべき、というアドバイスを頂きました。 そこでまたまた疑問が出てきたのでお聞きしたいのです。 私は主にホームページビルダーでサイト作成を行ってきたのですが、ビルダーはxhtml 1.0 strictには対応していないため、勉強のためにもHTMLエディタで作ってみようと思い、ezhtmlというフリーソフトをダウンロードしました。 そのソフトの文字コード設定画面で、【UTF-8(BOM付き)で保存する】と【UTF-8N(BOM無し)で保存する】の二つの項目があったのですが、これはどちらを選べばいいのでしょうか? それに、改行コードはCR-LFでいいのでしょうか? それと他に気になっていることがありまして。 私がレンタルしているサーバーは独自CGIが使用できるので、KENTWEBなどで配布しているフリーのCGIを使ってメールフォーム、掲示板等を設置しているのですが、CGIの本体のファイルを編集する際、こちらも文字コードを変更する必要があるのですか? 基本的なことがわかっていないため、トンチンカンな質問をしてるのかもしれませんが、上記のことで分かる方いらっしゃいましたら教えて下さい。 1.UTF-8(BOM付き)かUTF-8N(BOM無し)か 2.改行コードはCR-LFでいいのか? 3.CGIファイルなどの文字コードはどうするのか この中の一つだけでも結構ですので、よろしくお願いします。

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

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

1 UTF-8 は、BOM無の方が良いでしょう。 しょせんは、多くのブラウザやサーバー(Apache等)がどっちに対応してるかという問題なのでですが、BOM有のみ対応というソフトは考え難いです。 2 CRLF がベターですが、LF だからダメというケースがもしあったら MAC関係でしょうか。 # 規格では、作成側には CRLFを、読取側には CRLF と LF の両対応を求めてたと思います。 3 入手した CGIの場合は、あなたの実力で対応するしかないです。 可能性的には、入手したままでやる方がうまくいき易いでしょう。 # CGIの文字コード変更は、HTMLより要修正箇所が多いのが普通です。 # さらにメール送信の場合、規格を守るならば、本文を JIS に、Subject 等を JIS の BASE64 エンコードにします。 その時、JISに変換する処理で元コードがハードコーディングされてる可能性もあります。 要は、そのCGI次第です。 個人的には、SJISのCGIは使わないのがお勧めです。

exit0107
質問者

お礼

1と2はともかく、3に関しては勉強が必要そうですね。 この際ですから、わからないことを一つ一つクリアして行こうと思います。 回答ありがとうございました。

その他の回答 (2)

  • shioz
  • ベストアンサー率62% (529/853)
回答No.3

丁寧な回答が既に出ているので3についてのみ補足します。 CGIファイルの修正も必要です。 KentWebさんのソースならそんなに大変じゃないと思います。 ".cgi"はほぼ全部、".pl"は内容により修正が必要です。 修正点としては、(1)ファイルそのものの文字コード変更、(2)ソース内の"charset="を変更、の2点です。 また、skinを使用している場合、skinのhtmlファイル(charset=)やcssファイルの文字コード指定(@charset)も変更する必要があります。 ※具体的にはこうなります charset=shift_jis→ charset=utf-8 @charset "shift_jis" ;→ @charset "utf-8" ; skinを使っている場合は、ものによってhtmlファイル数が多くて大変かと思いますが、各ファイルを開いて検索、置換で置き換えるだけなのでたいした手間ではありません。 詳しくはこちらをご参考に http://sakaguch.com/utf2.html#cgi http://toshichang.exblog.jp/3959036/

exit0107
質問者

お礼

一番気になっていた事項について、具体的に説明して頂けて大変助かりました。 自力でどこまでやれるかわかりませんが、紹介して頂いたサイトも参考にして頑張ってみようと思います。 ありがとうございました。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

私は、もっぱらEmEditorなのですが、HTMLの場合はBOMは不要です。ソースに書いてあるので・・  改行コードは、あなたがWindowsならCR+LFで、Macintoshなら、CRで、UnixならLFでよいです。これはサーバーにFTPで送られるとき、FTPの仕様で相手の改行コードに自動的に変換されるから。いわゆるテキストモードで転送  CGIファイルは、UTF-8か、EUC、他の文字コードではまる・・・まあ、EUCが無難かな。

exit0107
質問者

お礼

今まで全部ビルダー任せにしていたのでわからないことが多すぎて困っていました。 詳しく説明していただいて助かりました。 ありがとうございました。