Friday, May 22, 2015

AlfrescoのZipダウンロード機能が文字化けで使えない場合の対処法

こんにちは。最近花粉症っぽい症状がぶり返しているおおたにです。同僚に聞いたところ、イネ科の花粉がこの時期に飛ぶらしいとのことで、近いうちにアレルギー検査をしてこの症状の原因を突き止めたいと思っています。

さて、今回はAlfresco 4.2系以降で利用可能な「Zip形式でダウンロード」機能に関して起こりがちな問題と解決方法について説明します。


「Zip形式でダウンロード」機能とは


「Zip形式でダウンロード」機能は、複数のフォルダやファイルを一括ダウンロードする機能で、選択したフォルダもしくはファイルをZip形式で圧縮してダウンロードします。Alfresco 4.2において実装された機能で、現行のAlfresco 5でも利用することができます。





Zip形式ダウンロードを行うとファイル名が文字化けして展開できないことがある


とても便利な機能なのですが、Windows 7(もしくはそれ以前)においては、ファイル名が文字化けして展開できないことがあるという問題があります。MBCSのファイル名、例えば全角文字を含むようなファイル名のものを「Zip形式でダウンロード」でダウンロードしてみましょう。

Archive.zipというファイルがダウンロードされるので、エクスプローラで開いてみます。すると、以下のように文字化けしてしまうことがあります。なお、Windows 8やMac, Linuxでは文字化けせず、Windows 7以前でのみ文字化けします。



これは、Alfrescoが生成するZipファイルでは格納されているファイル名がUnicodeで記録されているにも関わらず、Windows 7以前ではファイル名をShiftJISとして認識しようとしていることに起因します。Mac等で生成したZipファイルをWindowsで開こうとすると文字化けすることがあるのと同じ問題です。


2つのワークアラウンド


この問題、既にAlfresco JIRAに報告されていますが、Alfresco側で手当てする予定は無いようなので、クライアント側で対処する必要があります。対処法としては以下の2つがあります。

1. Unicodeファイル名に対応したアーカイバを利用する
 Zipファイルの展開にエクスプローラではなくUnicodeファイル名に対応したサードパーティのアーカイバ(7-Zip等)を利用することで、文字化けせず適切に展開することができます。

2. Windowsの修正プログラムを適用する
 どうしてもMicrosoft謹製のエクスプローラで開きたいという場合は、各クライアントPCにこちらの修正プログラムを適用することで、Unicodeファイル名を適切に扱うことができるようになります。

2.の修正プログラムを適用すると、先ほどのArchive.zipも文字化けせずに展開できるようになります。



本記事は以上となります。ファイル一括ダウンロードを利用したいという方は是非お試しください。


No comments: