青木@名古屋です。 On Mon, 13 Nov 2017 01:31:15 +0900 maruy...@ism.ac.jp (丸山直昌) wrote:
> 青木 様 > > 丸山です。 > > Sun, 12 Nov 2017 22:46:48 +0900 > Tomoaki AOKI <junch...@dec.sakura.ne.jp> writes: > > なるほど、それは便利そうですね。有難うございます。つまりは > > foreach f (*) > set g=`echo -n "$f" | nkf -Sw` > if ( "$f" ne "$g" ) then mv "$f" "$g" > end > > などということは convmv で一発でできる、ということでしょうか。昔Windows > で使っていたファイル達をそのまま UNIX のファイルシステムに単純コピーした > ものを未だに大事に持っていたりしますが、それらの日本語ファイル名を一括で > コード変換するには最適、という感じですね。 まさにそういう用途です。 > ただそれは私の元来の質問の趣旨、つまり unzip の解凍でのファイル名のコー > ドに関する挙動の問題とは別の話だと思います。今回梅本さんに教えて頂いたこ > とによってわかったことは > > 1. ICONV off でコンパイルされた unzip で解凍した場合 > 2. ICONV on でコンパイルされた unzip をそのまま使って解凍した場合 > 3. ICONV on でコンパイルされた unzip にコマンドラインオプション > -O sjis を付けて解凍した場合 > > ではファイル名は全部違う結果になりました。そして 3 だけが私が理解できる > 文字コードで、他の二つは nkf をどう使っても読める文字のファイル名は現れ > ませんでした。ま、私の nkf に対する理解が足りないのかも知れませんが、も > し 1 と 2 の場合にどのようなコードがファイル名として現れるかわかりました > ら、この ML 書いて報告して頂ければ幸いです。 1も2もコード変換が介在しないので、 アーカイブに記録されたままのコード という解答しか出来ません。 ※文字コードを指定しない場合、iconvの機能は使われないかと。 ただ、1の場合と化け方が違うようなら、別途しらいさんが コメントされているようにiconvは機能しているが誤変換している 可能性が高いです。 どうしても特定を、となると、しらいさんがコメントされているとおり、 ダンプして調べるくらいしか思いつきません。 幸い3ならファイル名が 読めるとのことなので、ダンプしたコードがその文字になるコード体系を 割出す、と。 zipフォーマット自体では文字コードは強制されないようなので、 個々のアーカイバで ・元ファイルの名前を読み込んだそのまま(ファイルシステム依存) ・特定のコードに変換して記録(UTF-8,Shift-JIS,TRONコード等々) のどれになるやら。 DOS時代は日本語版ならディレクトリエントリが ShiftJISのみ対応(他国語版も各々の国で通常1つのコードに対応) でしたし文字コード変換などという変換テーブルだけでメモリを喰う 処理はしたくても出来なかった背景から先のパターンが主流だったと 思いますが...。 https://ja.wikipedia.org/wiki/ZIP_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83% AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88) を見ても、 6.3.0: Unicode (UTF-8) ファイル名のストレージについて記載した。 サポートされるハッシュ、圧縮、暗号化アルゴリズムが追加された。 のような記載もあることから、(過去からの経緯で)環境や実装次第で コードは標準化していなさそうですね。 実際、zip形式は本家PKWARE 以外の実装もInfo-ZIPやらWindozeの圧縮フォルダやら多数ありますし。 > > -------- > 丸山直昌@統計数理研究所 > -- 青木 知明 [Tomoaki AOKI] <junch...@dec.sakura.ne.jp> _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"