WordPress ME 1.5.1 Pre Release!!
使わせて頂いている、ブログシステム WordPress ME の 1.5.1 Pre Release 版がでました! ということで、早速導入してみました。
なんと Shift_JIS 言語ファイルも同梱され、設定さえ変えればすぐに Shift_JIS 化できます。感動・・・。
以下、Shift_JIS で動かしちょっと困ったお話。ぼくがあほなことをして、不具合だしてしまっている可能性大です・・・。
■ xmlrpc
一部、ブロガークライアント ubicast blogger で xmlrpc を呼び出すと「Illegal xml character.」がでてしまうので、ここは hack コードをいれています。
なんだかインチキっぽいですが、ubicast blogger の API 指定を MovableType 2.0(以降) にして xmlrpc.php を指定すれば、過去記事の取得と投稿/修正は可能になります。
■ RSS
今見たら、実サーバで動かすと RSS の一部文字列が、
XML parsing error:
<description><![CDATA[ブログの ping 受信をしてサイト上に記載してくれるブログの
「を」の部分でエラーしている・・・。なんだろう。
■ RSS追記1
うー、なんとなく分かってきました。 Shift_JIS コードで「0x7c」を含む文字があると、RSS の description 作成時に「^@#166;」に変換されている様子。 ^@(0x23)が不正なcharacterになっているのか・・・。「ポ」とか「掃」で起きています。なぜだろう。
家の PHP Version 4.3.10 だと普通の「?」に、このサーバの PHP Version 4.3.9 だと「^@」になってしまうらしい。 ? だと動いてしまうのですよ。。
どこで変換されているのかもうすこし調べなくては・・・。
あと今気が付いたのですが、ある条件で「x(小文字)」を入力すると「×(バツ)」に変換されます。 0x7。 かけ算になるのかな? 🙂
■ RSS追記2
やはり上記は、PHP のマルチバイト関数の問題のようです。検索をかけると「0x7c |(セパレータ)」でいくつか問題がでているのを見つけました。どこかの関数でおかしくなっているのだろうか・・・。
というわけで、UTF-8 で扱うと問題がないとのことなので、wpj_excerpt_rss 関数で処理前に UTF-8 にしたところ、「|」も化けずに変換できました。
なんだか申し訳なくなるような修正ですが、直ったのでよしとします。
それにしても、ページに地雷の「ポ」と「掃」が同時に入っているなんて・・・。なんて運の悪い。 😛