feed2js 文字化け対策

「feed2js」の文字化け対策です。
EarlGrey Tearoom 様を参考にさせていただきました。
1.feed2js_config.php を開きます。
2.「function strip_returns」で始まる行を表示します。※60行目付近

function strip_returns ($text, $linefeed=” “) {
$subquotes = ereg_replace(“'”, “‘”, stripslashes($text));
return ereg_replace(“(\r\n|\n|\r)”, $linefeed, $subquotes);
}

3.以下のように修正します。※上記を参考に、太字部分を削除して下さい。

function strip_returns ($text, $linefeed=” “) {
$subquotes = ereg_replace(“'”, “‘”, $text);
return ereg_replace(“(\r\n|\n|\r)”, $linefeed, $subquotes);
}

これで文字化けの問題は一気に解決です。
ちなみに、これまで、どの文字が化けていたのかというと・・・。
表示の「表」や、技能の「能」です。
なぜ特定の文字だけが?と、とても不思議でした。
これ、いわゆる「PHPの5C問題」というものなのだそうです。
では、「PHPの5C問題」とは何か?
SJISにおける「表」の文字コードは「955C」、「能」は「945C」です。
この2バイト目にある「5C」というコード、
ASCIIでは「\」記号(バックスラッシュ(または円マーク))になります。
この「\」記号、PHPスクリプト中では特別な意味を持つことがあるため、
PHPエンジンに通した時、その文字だけエラーとなるのだそうです。
ちなみに、日本語を表現できる文字コードの中で、
「5C」を含む2バイト文字が存在するのはSHIFT-JISのみ。
そのため、SHIFT-JIS以外の文字コード(JIS、EUC、Unicode)では、
このような文字化けは起こらないのだそうです。
ということで・・・やはり今後はUTF-8で記述していくべきなのかなあ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です