検索結果画面で検索文字列が文字化けする不具合を解消する
Movable Type で「検索フォームに日本語を入力して検索すると、入力した文字が文字化けして表示される」というご質問を頂きました。確認したところ、例えば「コンピュータ」という文字列を入力すると、検索結果画面はスクリーンショットのような表示になりました(画像をクリックすると拡大表示します)。
お分かりの通り、入力した検索文字列がURLエンコードされたままの状態で処理・表示されてしまうため、エントリーに含まれる検索文字列であっても正常に検索することができず、「ページはみつかりません」という結果になってしまいます。
この問題は CGIPath のドメインを、サイトURLのドメインと一致させることで解消するようです。具体的には、mt-config.cgi の CGIPath に記述しているURLのドメインを、管理メニューの「設定」→「公開」→サイトURLに記述されているドメインに修正します。ただし mt.cgi と index.html が異なるディレクトリの場合、mt.cgi までのパスをドメインの後ろに設定する必要がありますのでご注意ください。
なお試験サイトで CGIPath とサイトURLで異なるドメインを設定してみましたが、正常に動作しました。したがって、CGIPath のドメインからサイトURLのドメインへリダイレクトを設定しているような条件の下でのみ、この問題が発生する(可能性がある)のではないかと考えます。
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
最近Blogを作成しているのですが、検索の文字化けにはまっています。
Blogは、以下の様に設定しています。
CGIPath:
CGIPath https://test-blog.opus.jp/mt/
サイトURL:
https://test-blog.opus.jp/test-pack/
日本語で検索(例:「テスト」など)すると、検索結果は出るのですが、テキストボックスの文字列だけは文字化けしてしまいます。
どうしたら良いでしょうか?
ちなみに、PublicCharsetは「Shift_JIS」ですが、この当たりも関係してくるのでしょうか?
ご教授いただけたら幸いです。
>つねっちさん
こんばんは。
「文字化け」ということですが、具体的にどのような文字が表示されておりますでしょうか。
またこちらからご指定のサイトにアクセスすることができませんでした。ブラウザの文字コードを切り替えてみて、他の文字コードで正常に表示されるのであればブログの文字コードと検索テンプレートの文字コードの設定が異なっている可能性があります。
それではよろしくお願い致します。
コメントに対してのお返事ありがとうございます。説明が足らなくてすみませんでした。
文字化けについて、「テスト」と入力すると「繝・せ繝・」とテキストボックスに表示されていて、検索結果のページに「検索」ボタンが表示されていませんでした。
恐らく、[UTF-8]で処理されていたのかと思い、mt-config.cgiの[PublishCharset]を[UTF-8]にして、もう一度ブログを作り直したら、ちゃんと表示されるようになりました。作り変えてしまったので、前回のコメントで設定したURLでは、もうページを表示出来なくなってしまいました。失礼しました。m(_ _)m
検索テンプレートは、管理画面の[テンプレート]→[システム]タブで
「検索結果」のテンプレートに対して「MTPublishCharset」のタグを
使って、metaタグのcharsetパラメータに設定しているので、多分
ブログの文字コードと一致すると思っていたのですが、それとは
別に設定する場所があったのでしょうか?結局、原因は掴めていませんでした。お騒がせしました。
また何かあったら、コメントさせて頂くと思います。
よろしくお願いします。
>つねっちさん
こんにちは。
検索テンプレートの文字コードはブログの文字コードを引き継ぐので、通常では上記のようなことは起こらないという認識です。
とりあえず直ったようで良かったです。
ではでは!
本の
chapter03でテンプレートのところでp103ぐらいから、テンプレートをダウンロードして、うんぬんとあり、ダウンロードしてみたんですが、メモ帳でひらいたところ日本語の部分が文字化けしてします。教えてください。
>momoさん
こんにちは。
ご質問の件ですが、サンプルデータダウンロードサイト(サンプルデータのページ)に、書籍通りの手順で文字化けする方のために、テンプレートをダウンロードできるようにしています。お手数ですが、そちらをご利用頂けますでしょうか。
ダウンロードサイトのURLは3章の扉ページ右下に記載しています。
それではよろしくお願い致します。
あらためてこんにちは。
こんなに早くコメントいただき助かります。
初心者なので、がんばります。
>momoさん
こんにちは。
ご連絡ありがとうございました。
またなにかございましたらご連絡ください。
ではでは!