.htaccessによる文字化け対策

.htaccessによる文字化け対策

Posted at November 23,2004 2:25 PM
Tag:[]

TypeKey認証やコメント投稿の後で文字化けが発生するという質問を最近何件か頂いています。TypeKeyの文字化けについてはHTTPリダイレクトを伴っており、ページ直前のHTTPレスポンスで返却されたcharsetを見てしまうのが文字化けの要因と思われます(発生するサイトとしないサイトの違いは不明です)。下記のサイトに解説があります。

エンタープライズ:Linux Tipsリダイレクト先で文字化けしてしまう

ただしコメント投稿後の文字化けは原因不明(リダイレクトではないという認識)です。

上記のサイトにも少し書かれていますが、リダイレクトによる文字化け解消について .htaccess を利用する方法がありましたのでご紹介します。

1..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 が使われていることが前提になります(多分この文章は無視されても大丈夫だと思います…)。

2.ファイル配置
.htaccess を配置(アップロード)します。このファイルの内容は、ファイルを配置したディレクトリおよびそのサブディレクトリ全てに適用されますので(サイトのトップディレクトリにあると思われる)index.htmlが配置されているディレクトリに配置します。

以上です。なお上記の対策は動作を確認できてないこともあり、完全な不具合解消を保証するものではありませんので予めご了承ください。また本設定がコメント投稿後のページ表示にも適用されればいいのですが(CGIからの出力は一旦HTTPアクセスが行われると思っているので適用されそう?)、そうでなければカスタマイズされたページのどこかに文字化けの要因が潜んでいると考えられます(感覚的にはHTMLタグの文法エラー等ですが改善性については未知です)ので、申し訳ございませんが「デフォルトのテンプレートから少しずつカスタマイズして動作をチェックしてみてください」という原始的なアドバイスしかできません。併せてご了承願います。
↑一応動作確認できているサイトあります。なお文字化けの原因は「続きを読む」を折りたたむスクリプトにあるようでした。ご利用中の方にはご迷惑おかけして大変申し訳ございません。とり急ぎお詫びまで。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

TypeKey認証時の文字化け対策 from Internet Zone::Movable TypeでBlog生活
TypeKeyでサイン・インしたときや、逆にサイン・アウトしたときに、文字化けする場合がありました。全部じゃなくて、同じブログのなかでも、文字化けするエントリー... [続きを読む]

Tracked on November 24, 2004 2:15 PM

Blogカスタマイズメモ from Daily note
文字化け現象に(・ε・?だったのが解決の模様。 今回ももちろんお世話になりました... [続きを読む]

Tracked on November 25, 2004 5:58 PM

TypeKey認証時の文字化け対策 from Magic White
小粋空間 個別アーカイブに「続きを読む」を導入のスプリクト入れていて、TypeK... [続きを読む]

Tracked on November 26, 2004 3:04 AM

文字化け対策に.htaccessファイルを使う from 喜怒哀楽
うちのMT。 なぜかこのページだけエンコードがUTF-8にもかかわらず、日本語(... [続きを読む]

Tracked on November 29, 2004 10:45 AM

文字化け対策をしてみました from リンゴ庵blog
以前から、個別エントリーを表示させると「文字化け」が起こることは存じておりました... [続きを読む]

Tracked on January 20, 2005 5:36 PM

文字化け対策 from M*C?B Version?
小粋空間さんの .htaccessによる文字化け対策をここでも取り入れてみました... [続きを読む]

Tracked on February 1, 2005 3:18 AM

Movable TypeをUTF-8化したら文字化け発生 from THE SUN ALSO RISES
です。なんだかインポートの仕方が間違っているのかなと思っていましたが、解決策が小... [続きを読む]

Tracked on March 21, 2005 8:55 PM

WordPressの表示速度を速くする WP-Cache 導入 from 新電波
WordPress のページをキャッシュすることで、表示速度を速くする WP-Cache を導入しました。 表示がおかしくなる等のエラーがありましたら、報... [続きを読む]

Tracked on June 18, 2008 12:15 AM
コメント

丁度先日、ウチのサイトも化けて気になってました
今回のバージョンからの気もするんですが・・
本来、サーバー側で対応するべきっぽいですね
とりあえず、htaccess置いてみます^^

[1] Posted by Deepsnow : November 24, 2004 12:16 AM

こちらの方法で、うちもトップディレクトリにhtaccessファイルを置いてみましたら、以前の現象はなくなりましたー!
すごいですー!
重ね重ねありがとうございました!

[2] Posted by ミッチ : November 24, 2004 10:00 AM

もう・・・度々スミマセン。
もっと動作確認してから書きこみしなきゃ!と思いつつ、うきうきしちゃうとつい・・・。
で、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ファイルをおくとですね、以前エンコードがうまく選ばれなかったページはブログの文字コードを選んでくれてました。

[3] Posted by ミッチ : November 24, 2004 10:16 AM

>Deepsnowさん
こんにちは。
参照ありがとうございます。
たしかにサーバー側で対応してくれればいいですね。
ただレンタルサーバーの場合はユーザの文字コードを予測できないのであえて設定していない?という見方もできそうです。

>ミッチさん
こんにちは。
参照ありがとうございます。
念のため状況を確認させてください。
どの方法を使われましたでしょうか?
また2番目の方法も行われてましたでしょうか?
よろしくお願い致します。
またお時間ください…。

[4] Posted by yujiro : November 24, 2004 2:01 PM

こんばんは。
一番目の「AddDefaultCharset UTF-8」でやってみたところ
コメント後の文字化けがなくなりました。
(ワタシがレンタルしてるロリポはApache1.3××のようです。)

テンプレートをデフォルトにしてやり直すことも考えていたのですが
これで落ち着いてくれると信じて様子をみます。
とても助かりましたぁ。ありがとうございます。

[5] Posted by miaow : November 24, 2004 8:14 PM

>miaowさん
こんばんは。
いや?、うまくいったみたいで良かったです。
Apacheのバージョンも調べて下さりありがとうございます。

[6] Posted by yujiro : November 25, 2004 12:12 AM

コメント&確認ありがとうございます。
僕は、プログラムはさっぱりダメな文科系ゆえ、いつも参考、じゃなくて活用させていただいております。ダジャレならお役に立てるんですけどね… (^^;)

[7] Posted by GAKU : November 25, 2004 1:51 AM

>GAKUさん
こんばんはー。
いえいえ、ダジャレ仲間増えて嬉しいです。
またのお越しを!

[8] Posted by yujiro : November 25, 2004 1:59 AM

yujiroさん、こんにちは。

私が試した方法ですが・・・
MTをPHP化にしたもので、迷わず

AddType "text/html; charset=UTF-8" .html .php

の方をやってみちゃったんです。

他のは試してません。
やってみた方が・・・・いいですよね。

ちょっと実験してきまーす・・・。

[9] Posted by ミッチ : November 25, 2004 9:49 AM

>ミッチさん
こんばんはー。
実験お願いしてすいません。
お待ちしております。

[10] Posted by yujiro : November 25, 2004 11:47 PM

文字化け対策と個別対応続き読むスプリクトいれるとうちの場合、javascriptエラーでます。

MT3.11新規インストール環境だと違う部分あるのかなぁ、、、。

htaccessには、http://lolipop.jp/?mode=manual&state=blog&state2=mt311_2&PHPSESSID=ee698e7b497933e3eecdbe48e0cca2cd
ありますファイル保護やってたんですが、mt.cfgファイル保護しようとしてもエラーでます。

なんでだろ、、。

[11] Posted by miyotan : November 26, 2004 1:59 PM

書き忘れました。
エラー表示は、
ライン45
文字5
エラー デコードするURIは、有効なエンコーダではありません。

htaccessいれてもいれなくてもエラーでる模様、、。

[12] Posted by miyotan : November 26, 2004 2:14 PM

いろいろ原因調べて、Remember Meにあるようです。
なので、Remember Meをデフォルト・テンプレートから持って来たらエラーなくなりました。
htaccessいれても大丈夫です。

いろいろ対策されてるRemember Meの方がいいんだろうけど、、。しばらくは、デフォルトでいきます。

何回もコメントしてすいませんでした。

[13] Posted by miyotan : November 26, 2004 2:33 PM

>miyotanさん
こんばんはー。
とりあえずうまくいったみたいですね。良かったです。
Remember Meですか…了解しました。
私も変更したスクリプトを使っているのですが文字化けしないのは何故?

ますます訳が分からなくなってきましたが検証する価値はありそうですね。
ご連絡ありがとうございました。

[14] Posted by yujiro : November 27, 2004 12:09 AM

すみません、^_^;
2重トラックバックしてしまいました。
お手数ですが削除お願いします。
いつもすみません。m(__)m

[15] Posted by miaow : November 27, 2004 10:01 AM

>miaowさん
こんばんは。
ご連絡ありがとうございます。
遅くなりましたが先程削除しておきました。
どうぞお気遣いなく。

[16] Posted by yujiro : November 27, 2004 10:55 PM

Remember Meの件は、IE6 SP2だからかも、、。
IEいやーん(汗。

でもそろそろきつねさんに手を出そうと思ってる今日この頃、、。

[17] Posted by みよたん : November 28, 2004 1:40 AM

>みよたんさん
SP2と関係ありですか…。
う?ん…今日は寝ます(逃避モード)。

きつねさんは手ごわい

[18] Posted by yujiro : November 29, 2004 12:14 AM

.htaccessファイルは、一番目の方法でやってみると、うまい具合に今まで不具合のあったページが文字化けしなくなりました。

よかったですー。
ありがとうございました!

[19] Posted by ミッチ : November 29, 2004 10:46 AM

>ミッチさん
こんにちはー。
トラックバックありがとうございます。
文字化け対処うまくできたようですね!
これで一安心です。

[20] Posted by yujiro : November 29, 2004 2:43 PM

ここのところ、何人かのかたから やむやむで 個別アーカイブのページを開くと 文字化けしてると言われ、この方法を試してみました。自分が見てる分には 一度も文字化けしたことないのですが・・・不思議ですね。これで文字化けしなくなってくれるといいんですけど。

[21] Posted by さえら : December 13, 2004 12:34 PM

>さえらさん
こんばんはー。
記事参照ありがとうございます。
文字化けはOSやブラウザ依存なんでしょうかね。
多分この対処で大丈夫かと(自信なし)。

[22] Posted by yujiro : December 14, 2004 12:56 AM

yujiroさん、おはようございます。
昨日は色々とありがとうございました。

文字化け対策として、こちらのエントリーを参考にさせて頂きます。

htaccessは初めての試みなので、緊張もしていますが・・・(^_^)

又、何かありましたらこちらで連絡致します。

[23] Posted by ねーさん : January 31, 2005 5:44 AM

>ねーさん
了解いたしました。
ご連絡&記事参照ありがとうございます。

[24] Posted by yujiro : January 31, 2005 12:21 PM

こんにちは。
先程、テキストエディタで.htaccessファイルを作成してみました。
アップロード前に確認したいのですが
記述内容は
AddDefaultCharset UTF-8
AddType "text/html; charset=UTF-8" .html .php
の2行だけで大丈夫ですか?
又、アクセス権は変更する必要がありますか?

[25] Posted by ねーさん : January 31, 2005 4:58 PM

>ねーさん
こんばんは。まずは

AddDefaultCharset UTF-8

の1行だけでお試しになってください。
よろしくお願い致します。

[26] Posted by yujiro : February 1, 2005 1:03 AM

こんばんは。
.htaccessを設置してみました。
私のPCからは何の変化も見られませんが
文字化けしている友達の状況が改善されればいいなと思っています。
色々とありがとうございました。

トラックバックを2回打ってしまったので1つは削除して下さい(^^;
お手数かけて申し訳ありません。

[27] Posted by ねーさん : February 1, 2005 3:39 AM

>ねーさん
こんにちは。
ご連絡ありがとうございました。
改善されることを願ってます。

トラックバック重複、削除しておきました。
お気遣いなく。

[28] Posted by yujiro : February 1, 2005 11:20 AM

yujiro さん

いつもお世話になります。
今ubicast Bloggerを使おうとしているのですが、アカウントセットアップで”ユーザー情報の取得に失敗しました”と出てしまいます。
mt-xmlrpc.cgiのパスもあっているし、パスワードもAPI用を登録して入れました。mt-xmlrpc.cgiが悪いのか、サーバかMT自体が壊れているのか分かりません。この記事に関連があるのかなと思い、お問い合わせした次第です。
ちなみに私のサーバにはhtaccessがあるのですが、上記の記述はありません。試してみる価値がありますか?何か解決作が分かれば、ご教授いただきますよう宜しくお願いします。

[29] Posted by せいざん : November 20, 2005 12:34 PM

yujiro さん

こんばんは。
せいざんと申します。先ほどの記事への追記なのですが、自分のブログにコメントを書こうとしてTypekeyにサインインしようとするとサインインができません。サイトのオーナーにお問い合わせくださいと出ます。自分がオーナーなのですが、よく分かりません。先ほどの質問と何か関係があるような気がして、再びコメントしました。何か情報があれば宜しくお願いします。

[30] Posted by せいざん : November 20, 2005 7:15 PM

>せいざんさん
こんばんは。
1番目のご質問についてはこの記事とは関連がないと思われます。こちらでも情報はありませんのでお許しください。
2番目のご質問はご自身のサイトでサイン・インされたコメントがあるようですが解決されましたでしょうか?

以上です。
それではよろしくお願い致します。

[31] Posted by yujiro : November 21, 2005 9:47 PM

いつも情報ありがとうございます。ずっと懸案だった問題が解決できました。ありがとうございました。

[32] Posted by ken : June 25, 2008 3:24 PM

>kenさん
こんにちは。
ご返事遅くなってすいません。
ご連絡ありがとうございました。
お役に立てたようで良かったです。
ではでは!

[33] Posted by yujiro logo : July 2, 2008 5:56 PM

こんにちは。
お久しぶりです。先日は、ありがとうございました。

最近、訪問者の方から文字化けの指摘をうけました。
それでこちらの.htaccessファイルを作成して一番上の分で試したところ
文字化けは、解消されて喜んでたんんですが、・・・・
メニューバーの部分にWeBAlbumとかのCGIをリンクしています。
MTと同じサーバーにアップしているためでしょうか?今度は、こちらが文字化けしてしまいました。MTが文字化けしているときは、問題なかったのですがこの.htaccess ファイルの影響なんでしょうが・・・
何か書き換えて解消する方法がありますでしょうか?
またお手数ですが、よろしくお願い申し上げます。

[34] Posted by kankiti : January 30, 2009 11:22 AM

>kankitiさん
こんにちは。
ご質問の件ですが、現在「WeBAlbum」のトップページを拝見しても文字化けはしていないようです。
なお、ディレクトリごとに.htaccessを配置すれば文字化けは解消できると思います(そもそも一番最初の文字化けの原因が不明なのですが)。
それではよろしくお願い致します。

[35] Posted by yujiro logo : February 4, 2009 3:46 PM

こんばんは。
これも文字化けしてたのでWebAlbumは、違うディレクトリーにCGIを置いて実行しています。やはりこうするしかないのですね。
どうもありがとうございます。
また、お願いします。

[36] Posted by kankiti : February 5, 2009 7:18 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)