26(金曜日)serendipityで日本語(UTF-8)トラックバックできないserendipityで自サイトにトラックバックを試していたのですが、たまに文字化けしてしまうことがあります。トラックバックを受信したエントリがexcerpt(抜粋)を表示するときに化けて表示されます。タイトルは正常に表示されています。excerptが正常に表示されることもあります。文字化けは気持ち悪いので調べてみました。うちの環境はこんな感じです。1.1-alpha5まずは、トラックバック受信処理のほうを調べます。トラックバックの受信の様子を調べるには、comment.phpで、$tb_loggingをtrueにすればいいようです。true;この状態でトラックバックを受信すると、trackback2.logというファイルが作成されます。UTF-8があることがわかりました。調べたところ、UTF-8エンコーディングされているものがさらにUTF-8エンコーディングされていました。いう場合にこうなるかというと、is_utf8()関数がutf8と認識できなかった場合です。そこで、こんどはトラックバック送信側を調べました。送信側のコードを調べてみたら、トラックバックの送信時にexcerpt(抜粋)が、substr()関数で255バイトにちょん切られている箇所がありました。ここではUTF-8のことは考慮されていないため、おかしな切れ目で切れてしまうことがあります。するとトラックバック受信側ではそれをUTF-8とは認識できなくなるようです。他の箇所を参考に以下のようなパッチをつくりました。/**これで、いまのところ問題なくなりました。blog送信側のコードを調べてみたら、トラックバックの送信時にexcerpt(抜粋)が、substr()関数で255バイトにちょん切られている箇所がありました。ここではUTF-8のことは考慮されていないため、おかしな切れ目で切れてしまうことがあります。するとトラックバック受信側ではそれをUTF-8とは認識できなくなるようです。他の箇所を参考に以下のようなパッチをつくりました。いったものは画像に変換します。電子メールアドレスは表示せず、電子メールの通知にのみ使用します。ロボットからの自動的なコメントスパムを防ぐために、画像の下の入力ボックスに適切な文字列を入力してください。文字列が一致する場合のみ、コメントが送信されるでしょう。サポートし、受け入れることを確認してください。なければ、コメントを正確に確認することができません。Macに関する話題はMac館で。