MoinMoin 日本語ファイルアップロードが失敗する

 Moin 1.5.8, 1.6.3, 1.7.0rc2と試したのですが、どうやら日本語ファイル名のファイルを添付すると、うまく保存・表示ができなくなるようです。MoinMoinBugにも、似たようなバグが報告されていました(中国語での不具合)。

 ざっと読んだところでは、AttachFile.pyという添付ファイルを処理するプログラムの中で、添付ファイルのファイル名をデコード・エンコードする処理に、charset として utf-8 を必ず使うのが原因とのこと。ファイルシステムにはファイルシステム固有の charset を "sys.getfilesystemencoding()" で取得して使って欲しいとの要望がでていました。

 しかし開発者サイドからは、すぐに同意した様子でもなく、まだ1.7.0rc2でも改善されていないので、方向性はきまってない模様。これがあると他に困っているところは小さな問題なんだけれどもなぁ。。。

 改善案を採用すれば、同じ言語を使うOS上では問題ないのだろうけれども、他に移植したときに問題がでそう。ん。。。難しい問題に見えてきました。

 同じエンジンを採用しているTrac上のWikiでは同様の問題がでていません。これは、TracWikiではバックエンドにSQLightを使用しているためと思われます。Moinはファイルシステムを使うため、この辺の問題がでてくるのかも。Tracでも、Wiki上のページは、attachmentsディレクトリ以下に格納されますが、ファイル名のエンコード方法として、UTF-8をURL-EncodeしているのがMoinとの違いなのかもしれません。(discypusさんのコメントを解釈して書き直し)手軽なんでこのコンセプトは保持してもらいつつ、良い解決方法がでてほしいものです。Tracのattachment.pyをちゃんと理解すれば、解決できそうな気もする