RSS配信の文字化け対応

どうも、昨日は国立競技場で大学ラグビー決勝戦の筑波大学VS帝京大学を観戦してきて、やはり帝京は強いなぁ…と実感して帰ってきたnaka-staです。筑波も最後は意地をみせてくれたからね。

さてさて、年末にリニューアルした当サイトですが、RSS配信の文字化けがおきておりました。

いろいろトライしてみたところ、先ほどのテスト投稿は化けなかったので、修正できた物と思われます。

以下、備忘録的に、対策方法をメモしておきます。


発生事象

当サイトが更新した際に出力されるRSSの日本語がすべて文字化けした。


原因

原因と思われるポイントは下記の通りであった。

  • Movabletype5.2.2へバージョンアップした際にデータベースを変更(SQLite→MySQL)したこと
  • 出力形式を変更(html→php)したこと

結局このうちのどれが悪かったのか、複合的なのかは判断できなかったが、管理システムからページをはき出すのとRSSをはき出すのは平行していると認識しているので、php化がRSSに影響を及ぼしていることはないのでは?と思っている。

ネットで検索してもデータベースによる文字コードのはなしが出てくるので、このあたりが原因では?と思っている。


対処方法

いろいろ試したが、どうやら「mt-config.cgi」に下記を追記しただけで解決した模様。

01
02
03
04
05
06
07
08
09
10
#======== DATABASE SETTINGS ==========
?
ObjectDriver DBI::mysql
Database dbname
DBUser dbuser
DBPassword dbpassword
DBHost localhost
# 以下の2行を追加
SQLSetNames 1
PublishCharset utf8

【出典】web mix labs「Movable TypeがMySQL5で文字化け」

実は最初にこれを試したのだが、同時に他のこともやってしまったため、解決に時間がかかってしまった…


まとめ

Google Readerは文字化けしていたが、同じくRSSを取得するFacebookへの投稿は文字化けしていなかった。

なので、一部サイトに記載されていたが、「外国製の一部のRSSリーダーはUTF-8しか読み込めない」というのに該当したのかと。

根本を理解しないで、いろいろ使ってみてしまっているところにそもそもの原因がありそうですが、当たって砕けろ精神でこれからもいじって行きたいとおもいますので、なにとぞよろしくお願いいたします。

未分類