SARの件続き

だらだら調べています。

ZIPファイル形式自体は?

  • SARが従うZIPファイル形式はDOS上のPKZIP由来。アーカイブメンバーの名前の解釈は、Windows同様使っている環境のコードページ依存と思われます。
  • ZipArchive>>writeCentralDirectoryFileHeaderTo: を見ると、特にエンコーディングもせずにZIPファイル中のディレクトリにファイル名を書き出しており、当然ながらISO Latin文字セットのことしか考えられてないコーディングです。(真のi18nにはWideStringをシフトJISに変換するべきでしょうが、ここでは議論しません)

以上から、パーセントエンコーディングの実装変更は、一般的なSARの扱いには影響を及ぼさないと推測されます。

Squeakエンコード・デコードをしている箇所をもう一度調べる

  • デコードしている箇所はいくつかあるのですが、エンコードしている箇所(#encodeForHTTPのsenders)は、URL関係以外にはありません。唯一関係しそうな Project>>urlForLoading も Nebraska関係?(Project>>tellAFriend)でしか使われておらず、無視できそうに思われますが、これでいいでしょうか?>識者殿(って誰?)
  • 一方、デコードしている箇所はいくつかありますが、どれもプロジェクトファイルの名前関係であることがわかりました。
  • SARInstaller の#fileInProjectNamed:createView:, #memberNameForProjectNamed: あたりがSAR関係でデコード処理をしているところですが、やはりプロジェクトファイル名がエンコードされていた場合の取り扱いのようです。わざわざそういうSARを作らない限り、そんな名前のメンバはできないので、これも無視できそうです。

幸い取り越し苦労に終わったようなので、テストコード書きに戻ります。お騒がせしましたが業務連絡でした。