- ベストアンサー
Apache設定ファイルhttpd.confの修正で不明な点があります
お世話になります。これからPHPを勉強しようとしている初心者です。 Apache、PHPをインストールし、Apache設定ファイル[httpd.conf]のAddDefaultCharsetについての記述を以下のように修正しようとしています。 AddDefaultCharset ISO-8859-1 ↓ # AddDefaultCharset ISO-8859-1 PHPについての本や参考サイトを見ると、どれもこのように修正するように書いてあるのですが、どうしてもファイル中に「AddDefaultCharset ISO-8859-1」という部分の記述が見つかりません。 文字コードについての記述は #AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 # For russian, more than one charset is used (depends on client, mostly): AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8 という部分しか見当たらないのです。 インストールしたApacheのバージョンは 2.0.55 です。初歩的質問で恐縮ですが、この場合どう修正すれば良いかご教授いただけないでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
最近のバージョンになって、不評だったせいか標準添付されている httpd.conf ファイルから AddDefaultCharset ISO-8859-1 という設定は外されました。なので、見つからなくて当たり前です。 ただし、HTTP/1.1 プロトコルの仕様書 (RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1, 参考 URL を参照) には、Content-Type ヘッダフィールドにcharset パラメータが存在しない場合のデフォルト値を ISO-8859-1 とする旨の記述があります。なので、AddDefaultCharset を設定しなくても結果は変わらないはずなのです。にもかかわらず、この設定を外すことでクライアント側で日本語が正しく表示されるようになるのは、クライアント側の実装バグであってサーバ側の設定としては望ましくありません。(逆に設定がないのであれば追加して下さい) 仮に、Windows を相手に Shift-JIS (Windows-31J) を使うのであれば、 AddDefaultCharset Windows-31J と設定すべきでしょう。これにより、Windows-31J 以外の文字コードを使いたい場合を除いて、プログラム側 (PHP) で文字コードを指定する必要がなくなります。
その他の回答 (3)
- entree
- ベストアンサー率55% (405/735)
すみません、参考 URL を貼り付けるのを忘れていました。^^;; 場所は p.37 の 「3.7.1 Canonicalization and Text Defaults」 というセクションです。 [ 原文の抜粋 ] When no explicit charset parameter is provided by the sender, media subtypes of the "text" type are defined to have a default charset value of "ISO-8859-1" when received via HTTP. Data in character sets other than "ISO-8859-1" or its subsets MUST be labeled with an appropriate charset value. [ 以下、翻訳 ] charset が送信者側 (サーバ) から明示的に供給されないとき、"text" タイプのメディアサブタイプは HTTP 経由で受信する場合 ISO-8859-1 の charset 値を持つものと定義される。ISO-8859-1 もしくはそのサブセット (US-ASCII などが該当) 以外の charset を持つデータは 適切な charset 値でラベル付けされなければならない。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
変えるなら以下の部分ですね。 #AddDefaultCharset ISO-8859-1 ↓ AddDefaultCharset EUC-JP など。 「AddDefaultCharset」で文字列検索されれば良いかと思います。
お礼
「AddDefaultCharset」を検索しても見つからなかったのですが、最新バージョンでは記述がもともとなかったようです。ご回答ありがとうございました。
- jijitau
- ベストアンサー率41% (24/58)
特に気にする必要はないと思います。 AddDefaultCharset の定義が無ければ、問題ないと思います。
お礼
そうでしたか!特に気にしなくても良いのですね。ご親切にありがとうございます。これからどんどん勉強していこうと思います。
お礼
お礼が遅くなり申し訳ありません。大変参考になりました。どうもありがとうございました。