HTTPコード「301」や「401」によるページ移動がWebブラウザに返されると、転送元のURLはブラウザ上に表示されず、瞬時に設定先URLへとジャンプする(参考Tips「永続的にHTTPアクセス先を変えたい」)。
しかし一部のWebブラウザバージョンでは、METAタグにいかなるcharset値が設定されていても、ページ直前のHTTPレスポンスで返されたcharsetを見てしまうため、文字化けが生じる(301や401返答自体のHTTPコード)。
このHTTPレスポンスには、サーバソフト(Apache)側のバージョンに依存する差異があり、Apache 1.3.11までは以下のように、301や401でのHTTPレスポンスに文字コードまでを返さない仕様だった。
Content-Type: text/html |
しかし、Apache 1.3.12以降、2.0系列でも標準で次のようにコードを含んで返すようになっている。
Content-Type: text/html; charset=iso-8859-1 |
このために文字化けが発生してしまう可能性があるわけだ。この回避策としては、リダイレクト設定を行っているサーバ上で、「mod_mime」モジュールの「AddCharset」を使う方法がある。
Copyright © ITmedia, Inc. All Rights Reserved.