KBPublisherには、記事にファイルを添付することができるが、管理画面で添付するファイルを登録すると、ファイル名が日本語の場合文字化けしてしまう。
このファイル名の文字化け問題に対する対処方法について覚書。
例えば、"テスト用のテキストファイル.txt"という名前を登録すると、"_________c_____________________________.txt"という感じ。
文字化けというか、日本語部分が"_"に置換されると言った方がいいかもしれない。
これまでも日本語で使用する際の問題点をいくつか修正して使えるレベルになっていただけにこの問題はすぐにでも解決したかったんだけど、調べるひまもなく、またファイルを記事に添付するという機会がなかったため、先延ばしにしてきた。
今回新たにKBPublisherを導入する機会があったので、せっかくだから直してしまおうと思ってがんばってみた。
暫定対処レベルだけど、一応きちんと日本語ファイル名で添付されようになったのでとりあえず良しとする。 以下その文字化けの原因と修正方法
文字化けの原因
文字化けの原因は、ファイルを登録する際にファイル名をチェックして問題となる特定の文字列が含まれていないかどうかチェックする関数(nameToSafe)を呼び出しているとコードだった。
このコードをコメントアウトしてあげたらあっさり直った。
文字化け対処手順
対象ファイルは、KBPublisherのサブフォルダ admin¥lib¥eleontev¥Dir にある uploader.php というファイル。
uploader.phpファイルの240行目にある以下の1行の先頭に//をつけてコメントアウトする。
$v['name'] = $this->nameToSafe($v['name']);
変更前:
$v['name'] = $this->nameToSafe($v['name']);
変更後:
//$v['name'] = $this->nameToSafe($v['name']);
修正したらuploader.phpを上書き保存する。
以上で終了。
暫定対処に関する補足
暫定対処としたのは、KBPublisher上では確かに日本語ファイル名が正しく表示されるけど、実施に保存されたファイル名はやっぱり文字化けしたファイル名で保存されてしまっているため。
これも解決したかったけど、とりあえずそこまでたどり着けなかったので、また時間があるときにがんばることにする。
コメント