アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。これから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 です。初歩的質問で恐縮ですが、この場合どう修正すれば良いかご教授いただけないでしょうか。

A 回答 (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) で文字コードを指定する必要がなくなります。
    • good
    • 0

すみません、参考 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 値でラベル付けされなければならない。

参考URL:http://www.ietf.org/rfc/rfc2616.txt
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。大変参考になりました。どうもありがとうございました。

お礼日時:2006/01/30 17:50

変えるなら以下の部分ですね。



#AddDefaultCharset ISO-8859-1

AddDefaultCharset EUC-JP  など。

「AddDefaultCharset」で文字列検索されれば良いかと思います。
    • good
    • 0
この回答へのお礼

「AddDefaultCharset」を検索しても見つからなかったのですが、最新バージョンでは記述がもともとなかったようです。ご回答ありがとうございました。

お礼日時:2006/01/29 01:03

特に気にする必要はないと思います。


AddDefaultCharset の定義が無ければ、問題ないと思います。
    • good
    • 0
この回答へのお礼

そうでしたか!特に気にしなくても良いのですね。ご親切にありがとうございます。これからどんどん勉強していこうと思います。

お礼日時:2006/01/26 21:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!