2009/01/28
わからんでもないけれどもだけど表記的にアレ
ある意味今更ですが、「MacZip4Win」(Renaとの日々)を拝見してふと思ったこと。
これは、Mac OS Xのファイルシステムの日本語文字コードがUTF-8なのに対し、WindowsがShift_JISであることに拠る問題です。
Win(NT系)の場合、ファイルシステムとしての文字コードはUnicode(UTF-16)じゃなかったっけかと。
ある意味どうでもいいことや、役立つかどうかもわからないような中身を、日々脳内から適当に垂れ流しまくりつつ、今日をなんとか生き存えることを思案してます。
2009/01/28
これは、Mac OS Xのファイルシステムの日本語文字コードがUTF-8なのに対し、WindowsがShift_JISであることに拠る問題です。
Win(NT系)の場合、ファイルシステムとしての文字コードはUnicode(UTF-16)じゃなかったっけかと。
「ZIP圧縮・解凍をする場合、Shift-JIS範囲外の文字では、Windows標準の『Compressed(zipped)Folders』等で処理が通らない場合がある」
が正しいはずです。別にファイルシステム自体の問題ではななく。ファイルシステム自体はUnicode(UTF-16)であり、Shift-JIS範囲外の文字などをファイル名に利用すること自体は実際に試したりもしてますがきちんと行えるので。
で、ちょっと調べてたら「ZIPの規格上、ファイル名は本来ANSI(ASCII)のみ」と記載されているサイト等をちらほら見るので、本来のZIPフォーマット自体の使用として考慮すると、規格仕様に対して可能な限り忠実に実装してしまった結果なのかなあと思ってしまったり。まあ、ZIP自体が古くからある圧縮規格なので、オリジナルに忠実、という点で考慮するとある意味納得できてしまうかも。
ちなみに、7-zipやStuffIt 11で試す限りはファイル名にUnicodeを利用していても問題なく処理できたので、個々のアプリ単体としての実装の問題、といえるかも。Unicode処理はオプション的な扱いっぽいし。
ともあれ、元々に対しての表記が誤解を招く形になっているべき、というところかも。
参照:私的ZIPファイル研究所(TNKソフトウェア)
補足というか朝追記:しかもややこしいことに、Windows側の各国語ローカライズやUTF-8/16でのコード変換処理にも絡んでいることなので、そもそもの問題自体が一言だけで説明しにくい、本来なら順を追って説明しないと理解しにくい、非常に複雑な問題だなということにあとで気づいてしまったり。それぞれの実装や処理全体に絡むような問題が起きてるな、ということで念のため。まあOS標準のものであればUnicodeくらい考慮しとけとか思うけど>Compressed(zipped)Folders。
コメント