Django:1.10
Djangoで日本語名のファイルが含まれているZIPファイルを解凍した時に、なぜか日本語名ファイルだけが解凍できていない問題が発生しました。
一緒に含まれている英名ファイルはしっかり解凍できているのに。
Pythonのライブラリの問題かと思い、Linux(ubuntu)のunzipやunarを使ってみたけど、それでも上手くいかない。
ここで、Djangoからではなく、Python単体で実行した場合は解凍に成功していることに気づきました。
・WindowsのDjango(Django内製サーバ)では成功する
・LinuxのPython単体実行では成功する
・LinuxのDjangoでは失敗する ⇒ Apache+mod_wsgiで動作している
というわけで、Apache+mod_wsgiで調べてみると以下記事を発見。
WSGIDaemonProcess my-django-site lang='en_US.UTF-8' locale='en_US.UTF-8'
日本語なので、apacheの設定に記載したWSGIDaemonProcessに以下パラメータを追加。
WSGIDaemonProcess my-django-site lang='ja_JP.UTF-8' locale='ja_JP.UTF-8' ...他のパラメータ
必要に応じて、language-pack-jaのインストール。
$ sudo apt-get install language-pack-ja
これで、日本語名ファイルも正常に解凍できるようになりました。
ちなみに、日本語のログ出力もできるようになるみたいです。