背景
pukiwikiでmarkdown記法を実装する手段の1つに、sonotsさん作の markdown.inc.php があります。
社内のwikiサイトに組み込んで使用してましたが、サーバOSをUbuntu Server 12.04から16.04にdo-release-upgradeした後で使えなくなりました。
原因
aptで入るPHPのバージョンが5.3->7.xに上がったことで、PHPの標準charsetがUTF-8となり、EUC-JPベースのテキストのParseが失敗していたからでした。(元々、UTF-8ベースで構築しているPukiwikiサイトは影響なかったと思います)
対策
今回、問題があったのはmarkdown表記の部分だけだったので、markdown.ini.phpに以下の文字コード変換を組み込んだらうまく表示できました。(PHPは素人なのでもっと良い修正方法があるかもしれません・・)
markdown.ini.php
//22行目あたり
$noskin = in_array("noskin", $args)
+ $body = mb_convert_encoding($body, "UTF-8");
: (中略)
$body = Markdown($body);
+ $body = mb_convert_encoding($body, "EUC-JP", "UTF-8");
備考
pukiwikiのテキストの文字コードをUTF-8に変換する方法もあるかと思います。今回は影響範囲が大きいので止めました。