ここにあるコードをmagpierss-0.61で動かしていますが、文字化けが酷いです。
どうしたらいいでしょうか?
http://d.hatena.ne.jp/kakku22/20080801/1217595511:http://d.haten...
http://kashioka.net/2007/10/magpierss.html:http://kashioka.net/2...
rss_fetch.inc内で"MAGPIE_OUTPUT_ENCODING"を検索して以下の箇所を探してください。
if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1');
}
この"ISO-8859-1"を任意の文字コードに変更すればよかったと思います。
参考リンクはいずれもUTF-8の場合です。
回答回数が限られていますので言葉が足りなかったらごめんなさい。
define('MAGPIE_OUTPUT_ENCODING','UTF-8');
と書いているのですが、これはどうなんでしょうか?
はい。まさしくどこだと思います。ただ、どの文字コードにするか?が問題だと思います。
確認事項
1. 取得するRSSの文字コードは何ですか?
重要なことは取得するRSSの文字コードです。これがわからないと前に進めません。
RSSフィードのソースを確認してください。以下は私のサイトのRSSフィードの例。
<?xml version="1.0" encoding="UTF-8"?>
このようにRSSに文字コードが明記されていると思うのでご確認ください。
2. テキストエディタは何を使っていますか?
Windowsのメモ帳とかだとShift_JISでしか保存できないので問題です。
もしメモ帳を使っているようでしたらテキストエディタで検索してください。
まとめ
結局、取得したいRSSの文字コードを正しくrss_fetch.incで定義していないために起こっています。
それと複数のRSSで違う文字コードのものを同じページに取得したい場合は厄介です・・・
めげずにがんばってください。
rss_fetch.inc内をMAGPIE_OUTPUT_ENCODINGで検索しても無いと出てきます・・・。
http://www.eternalheart.com/archives/2006/04/08/220739.phpのコードで、
define('MAGPIE_OUTPUT_ENCODING','UTF-8');
と書いているのですが、これはどうなんでしょうか?