カテゴリ | 動作環境 |
サマリ | 単語検索にて最初の文字が日本語だと文字化けします |
バージョン | 1.4.7 |
投稿者 | atikuti |
状態 | 完了 |
投稿日 | |
単語検索にて最初の文字が日本語だと文字化けします。
例えば「test」だと問題ないのですが、「テスト」で検索すると「��������」こんな感じで化けてしまいます。
どなたか解決策をご存じないでしょうか。
ご教授願います。
回答まとめ†
- PHP環境でmbstringが有効になっていないとこのような文字化けになります。mbstringが正しくロードされているか、ご確認ください。
- 他のPukiWikiでも同じ症状が出るなら「あなたの使用しているブラウザが原因」と考えられます。他では無事に動作しているなら「そのPukiwikiの設置に問題がある」と考えられます。設置に問題があるなら設置者にこのwikiを「文字化け」で検索した結果を対策してもらうとよいでしょう --
- ご返答ありがとうございます。結局、lib/html.phpの150行目($body = preg_replace_callback($pattern, $decorate_Nth_word, $body);)をコメントアウトで正常に動作しました -- atikuti
- 同様の問題があり、調べていました。html.phpのpatternがうまく動いていないように見えます。142行目('|' . '(' . $pattern . ')' .)を('|' . '(' . $s_key . ')' .)に変更することで動作しましたが、これで良いのでしょうか? -- atakada
- PHPのバージョンと、PukiWikiのバージョン、PukiWikiの利用文字コード(UTF8 or EUC_JP)はどうなっていますでしょうか?また、phpinfo()のmbstringの情報がわかると原因究明に役立ちます。手元でpukiwiki1.5 (UTF-8およびEUC_JP)、PHP5.6で試してみましたが、文字化けにはなりませんでした。どういうケースで文字化けになるのか興味があるところです -- umorigu
- 返答ありがとうございます。環境は次の通りです。PHP:5.3.3、PukiWiki 1.5.0_UTF8、phpinfoのmbstringは情報が出力されませんでした。mbstringが入っていないのが原因でしょうか? -- atakada
- 連投すみません。挙動としてはマルチバイト文字が1バイトずつstrongタグに括られるため、文字化けになるようです。mbstringを入れてみます。 -- atakada
- PHPにmbstringを入れ、正しく設定することで本問題が改善することを確認しました。 -- atakada
- 情報ありがとうございます。中途半端な状態で完了になってましたが根本原因がわかってよかったです。まとめておきます -- umorigu