KBPublisherには、記事にファイルを添付することができるが、管理画面で添付するファイルを登録すると、ファイル名が日本語の場合文字化けしてしまう。

例えば、"テスト用のテキストファイル.txt"という名前を登録すると、"_________c_____________________________.txt"という感じ。
文字化けというか、日本語部分が"_"に置換されると言った方がいいかもしれない。

これまでも日本語で使用する際の問題点をいくつか修正して使えるレベルになっていただけにこの問題はすぐにでも解決したかったんだけど、調べるひまもなく、またファイルを記事に添付するという機会がなかったため、先延ばしにしてきた。

今回新たにKBPublisherを導入する機会があったので、せっかくだから直してしまおうと思ってがんばってみた。

暫定対処レベルだけど、一応きちんと日本語ファイル名で添付されようになったのでとりあえず良しとする。

以下その文字化けの原因と修正方法
スポンサードリンク


文字化けの原因は、ファイルを登録する際にファイル名をチェックして問題となる特定の文字列が含まれていないかどうかチェックする関数(nameToSafe)を呼び出しているとコードだった。

このコードをコメントアウトしてあげたらあっさり直った。

対象ファイルは、KBPublisherのサブフォルダ
admin\lib\eleontev\Dir
にある
uploader.php
というファイル。

uploader.phpファイルの240行目にある

$v['name'] = $this->nameToSafe($v['name']);

の先頭に//をつけてコメントアウトする。

変更前:
$v['name'] = $this->nameToSafe($v['name']);

変更後:
//$v['name'] = $this->nameToSafe($v['name']);

修正したらuploader.phpを上書き保存する。
以上で終了。

暫定対処としたのは、KBPublisher上では確かに日本語ファイル名が正しく表示されるけど、実施に保存されたファイル名はやっぱり文字化けしたファイル名で保存されてしまっているため。

これも解決したかったけど、とりあえずそこまでたどり着けなかったので、また時間があるときにがんばることにする。

スポンサードリンク

  

関連記事