LoginSignup
0
0

More than 5 years have passed since last update.

Ubuntu Server 16.04に上げてEUC-JPな#markdownが表示されなくなった場合の対策

Last updated at Posted at 2017-04-27

背景

 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に変換する方法もあるかと思います。今回は影響範囲が大きいので止めました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0