2004年11月23日
●.htaccessによる文字化け対策
TypeKey認証やコメント投稿の後で文字化けが発生するという質問を最近何件か頂いています。TypeKeyの文字化けについてはHTTPリダイレクトを伴っており、ページ直前のHTTPレスポンスで返却されたcharsetを見てしまうのが文字化けの要因と思われます(発生するサイトとしないサイトの違いは不明です)。下記のサイトに解説があります。
ただしコメント投稿後の文字化けは原因不明(リダイレクトではないという認識)です。
上記のサイトにも少し書かれていますが、リダイレクトによる文字化け解消について .htaccess を利用する方法がありましたのでご紹介します。
まず .htaccess というファイルをテキストエディタ等で新たに作成し(既に存在する場合はその中)、そこに下記のいずれかの青字部分を記述します(とりあえず上の方をお試しください)。記述例は文字コードが UTF-8 でファイルの拡張子が .html の場合です。
明示的に文字セットを指定していない応答に追加されるデフォルトの文字セット
AddDefaultCharset UTF-8
ファイル名の拡張子を指定されたコンテントタイプにマップ
AddType "text/html; charset=UTF-8" .html
上の設定はHTTPヘッダで charset が設定されていない時に文字コードを指定するものです。
下の設定は拡張子に対応するコンテントタイプ(MIMEタイプ)の設定が目的です。phpファイルも対象に含む場合は
AddType "text/html; charset=UTF-8" .html .php
としてください(拡張子の間は半角空白、拡張子のピリオドはなくてもいいようです)。
記述した行の最後は改行してください。文字コードの部分は「EUC-JP」「Shift_JIS」等、使用されている文字コードに適宜修正ください。
技術的な話をすると、上記はいずれも Apache ディレクティブですのでHTTPサーバに Apache が使われていることが前提になります(多分この文章は無視されても大丈夫だと思います…)。
.htaccess を配置(アップロード)します。このファイルの内容は、ファイルを配置したディレクトリおよびそのサブディレクトリ全てに適用されますので(サイトのトップディレクトリにあると思われる)index.htmlが配置されているディレクトリに配置します。
以上です。なお上記の対策は動作を確認できてないこともあり、完全な不具合解消を保証するものではありませんので予めご了承ください。また本設定がコメント投稿後のページ表示にも適用されればいいのですが(CGIからの出力は一旦HTTPアクセスが行われると思っているので適用されそう?)、そうでなければカスタマイズされたページのどこかに文字化けの要因が潜んでいると考えられます(感覚的にはHTMLタグの文法エラー等ですが改善性については未知です)ので、申し訳ございませんが「デフォルトのテンプレートから少しずつカスタマイズして動作をチェックしてみてください」という原始的なアドバイスしかできません。併せてご了承願います。
↑一応動作確認できているサイトあります。なお文字化けの原因は「続きを読む」を折りたたむスクリプトにあるようでした。ご利用中の方にはご迷惑おかけして大変申し訳ございません。とり急ぎお詫びまで。
このエントリーのトラックバックURL:
http://yujiro.dyndns.org/blog/koikikukan/mt-tb.cgi/381
トラックバック実行後、タイムアウトした旨のメッセージが表示されることがありますが、トラックバック先の処理は(これまでの経験上)正常に終了しています。正常に送信されたかどうかはトラックバック先の個別アーカイブページ等をご確認ください(タイムアウトについてはこちらの記事を参照ください)。
また同一のトラックバックが重複してしまった場合、こちらで気がついた時に適宜削除しておりますので削除のご連絡は不要です。ただし期間が空いている場合(数日とか)は気がつかない場合がありますのでご連絡ください。
≫ TypeKey認証時の文字化け対策 from Internet Zone::Movable TypeでBlog生活
TypeKeyでサイン・インしたときや、逆にサイン・アウトしたときに、文字化けする場合がありました。全部じゃなくて、同じブログのなかでも、文字化けするエントリー... [続きを読む]
≫ Blogカスタマイズメモ from Daily note
文字化け現象に(・ε・?だったのが解決の模様。
今回ももちろんお世話になりました... [続きを読む]
≫ TypeKey認証時の文字化け対策 from Magic White
小粋空間 個別アーカイブに「続きを読む」を導入のスプリクト入れていて、TypeK... [続きを読む]
≫ 文字化け対策に.htaccessファイルを使う from 喜怒哀楽
うちのMT。 なぜかこのページだけエンコードがUTF-8にもかかわらず、日本語(... [続きを読む]
≫ 文字化け対策をしてみました from リンゴ庵blog
以前から、個別エントリーを表示させると「文字化け」が起こることは存じておりました... [続きを読む]
≫ 文字化け対策 from M*C~B Version~
小粋空間さんの
.htaccessによる文字化け対策をここでも取り入れてみました... [続きを読む]
丁度先日、ウチのサイトも化けて気になってました
今回のバージョンからの気もするんですが・・
本来、サーバー側で対応するべきっぽいですね
とりあえず、htaccess置いてみます^^
: 2004年11月24日 00:16こちらの方法で、うちもトップディレクトリにhtaccessファイルを置いてみましたら、以前の現象はなくなりましたー!
すごいですー!
重ね重ねありがとうございました!
もう・・・度々スミマセン。
もっと動作確認してから書きこみしなきゃ!と思いつつ、うきうきしちゃうとつい・・・。
で、htaccessファイルを置いたまではよかったんですが、トップカテゴリをクリックして出てくるページ、またトップ以下のサブカテゴリーの各ページに
The MTPaginate tag only works within PHP documents!
Make sure that the document extension is .php and that your server supports PHP documents.
というエラーが出てしまいます。
また、ページ分割の部分もうまく動かなくなっちゃいました。
ということで、htaccessファイルは外しちゃいました。
何がなんだか、私には分かりません;
「手を出すな」ということでしょうかね;;;
でも、確かにhtaccessファイルをおくとですね、以前エンコードがうまく選ばれなかったページはブログの文字コードを選んでくれてました。
>Deepsnowさん
こんにちは。
参照ありがとうございます。
たしかにサーバー側で対応してくれればいいですね。
ただレンタルサーバーの場合はユーザの文字コードを予測できないのであえて設定していない?という見方もできそうです。
>ミッチさん
こんにちは。
参照ありがとうございます。
念のため状況を確認させてください。
どの方法を使われましたでしょうか?
また2番目の方法も行われてましたでしょうか?
よろしくお願い致します。
またお時間ください…。
こんばんは。
一番目の「AddDefaultCharset UTF-8」でやってみたところ
コメント後の文字化けがなくなりました。
(ワタシがレンタルしてるロリポはApache1.3××のようです。)
テンプレートをデフォルトにしてやり直すことも考えていたのですが
これで落ち着いてくれると信じて様子をみます。
とても助かりましたぁ。ありがとうございます。
: 2004年11月24日 20:14>miaowさん
こんばんは。
いや~、うまくいったみたいで良かったです。
Apacheのバージョンも調べて下さりありがとうございます。
コメント&確認ありがとうございます。
僕は、プログラムはさっぱりダメな文科系ゆえ、いつも参考、じゃなくて活用させていただいております。ダジャレならお役に立てるんですけどね… (^^;)
: 2004年11月25日 01:51>GAKUさん
こんばんはー。
いえいえ、ダジャレ仲間増えて嬉しいです。
またのお越しを!
yujiroさん、こんにちは。
私が試した方法ですが・・・
MTをPHP化にしたもので、迷わず
AddType "text/html; charset=UTF-8" .html .php
の方をやってみちゃったんです。
他のは試してません。
やってみた方が・・・・いいですよね。
ちょっと実験してきまーす・・・。
: 2004年11月25日 09:49>ミッチさん
こんばんはー。
実験お願いしてすいません。
お待ちしております。
文字化け対策と個別対応続き読むスプリクトいれるとうちの場合、javascriptエラーでます。
MT3.11新規インストール環境だと違う部分あるのかなぁ、、、。
htaccessには、http://lolipop.jp/?mode=manual&state=blog&state2=mt311_2&PHPSESSID=ee698e7b497933e3eecdbe48e0cca2cd
ありますファイル保護やってたんですが、mt.cfgファイル保護しようとしてもエラーでます。
なんでだろ、、。
: 2004年11月26日 13:59書き忘れました。
エラー表示は、
ライン45
文字5
エラー デコードするURIは、有効なエンコーダではありません。
htaccessいれてもいれなくてもエラーでる模様、、。
: 2004年11月26日 14:14いろいろ原因調べて、Remember Meにあるようです。
なので、Remember Meをデフォルト・テンプレートから持って来たらエラーなくなりました。
htaccessいれても大丈夫です。
いろいろ対策されてるRemember Meの方がいいんだろうけど、、。しばらくは、デフォルトでいきます。
何回もコメントしてすいませんでした。
: 2004年11月26日 14:33>miyotanさん
こんばんはー。
とりあえずうまくいったみたいですね。良かったです。
Remember Meですか…了解しました。
私も変更したスクリプトを使っているのですが文字化けしないのは何故?
ますます訳が分からなくなってきましたが検証する価値はありそうですね。
ご連絡ありがとうございました。
すみません、^_^;
2重トラックバックしてしまいました。
お手数ですが削除お願いします。
いつもすみません。m(__)m
: 2004年11月27日 10:01>miaowさん
こんばんは。
ご連絡ありがとうございます。
遅くなりましたが先程削除しておきました。
どうぞお気遣いなく。
Remember Meの件は、IE6 SP2だからかも、、。
IEいやーん(汗。
でもそろそろきつねさんに手を出そうと思ってる今日この頃、、。
: 2004年11月28日 01:40.htaccessファイルは、一番目の方法でやってみると、うまい具合に今まで不具合のあったページが文字化けしなくなりました。
よかったですー。
ありがとうございました!
: 2004年11月29日 10:46>ミッチさん
こんにちはー。
トラックバックありがとうございます。
文字化け対処うまくできたようですね!
これで一安心です。
ここのところ、何人かのかたから やむやむで 個別アーカイブのページを開くと 文字化けしてると言われ、この方法を試してみました。自分が見てる分には 一度も文字化けしたことないのですが・・・不思議ですね。これで文字化けしなくなってくれるといいんですけど。
>さえらさん
こんばんはー。
記事参照ありがとうございます。
文字化けはOSやブラウザ依存なんでしょうかね。
多分この対処で大丈夫かと(自信なし)。
yujiroさん、おはようございます。
昨日は色々とありがとうございました。
文字化け対策として、こちらのエントリーを参考にさせて頂きます。
htaccessは初めての試みなので、緊張もしていますが・・・(^_^)
又、何かありましたらこちらで連絡致します。
: 2005年01月31日 05:44>ねーさん
了解いたしました。
ご連絡&記事参照ありがとうございます。
こんにちは。
先程、テキストエディタで.htaccessファイルを作成してみました。
アップロード前に確認したいのですが
記述内容は
AddDefaultCharset UTF-8
AddType "text/html; charset=UTF-8" .html .php
の2行だけで大丈夫ですか?
又、アクセス権は変更する必要がありますか?
: 2005年01月31日 16:58>ねーさん
こんばんは。まずは
AddDefaultCharset UTF-8
の1行だけでお試しになってください。
よろしくお願い致します。
こんばんは。
.htaccessを設置してみました。
私のPCからは何の変化も見られませんが
文字化けしている友達の状況が改善されればいいなと思っています。
色々とありがとうございました。
トラックバックを2回打ってしまったので1つは削除して下さい(^^;
お手数かけて申し訳ありません。
: 2005年02月01日 03:39>ねーさん
こんにちは。
ご連絡ありがとうございました。
改善されることを願ってます。
トラックバック重複、削除しておきました。
お気遣いなく。


