From owner-freebsd-users-jp@freebsd.org Mon Nov 13 12:31:01 2017 Return-Path: Delivered-To: freebsd-users-jp@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65DE4DB96AB for ; Mon, 13 Nov 2017 12:31:01 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from dec.sakura.ne.jp (dec.sakura.ne.jp [210.188.226.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 262606C701 for ; Mon, 13 Nov 2017 12:31:00 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from fortune.joker.local (124-18-70-98.dz.commufa.jp [124.18.70.98]) (authenticated bits=0) by dec.sakura.ne.jp (8.15.2/8.15.2/[SAKURA-WEB]/20080708) with ESMTPA id vADCUr5l056372; Mon, 13 Nov 2017 21:30:53 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) Date: Mon, 13 Nov 2017 21:30:53 +0900 From: Tomoaki AOKI To: freebsd-users-jp@freebsd.org Cc: maruyama@ism.ac.jp Message-Id: <20171113213053.bf39fb170167262feed41b11@dec.sakura.ne.jp> In-Reply-To: References: <20171112224648.eba393b3fbbc12959a149d67@dec.sakura.ne.jp> Organization: Junchoon corps X-Mailer: Sylpheed 3.6.0 (GTK+ 2.24.31; amd64-portbld-freebsd11.1) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Subject: [FreeBSD-users-jp 96162] Re: =?iso-2022-jp?b?emlwGyRCJSIhPCUrJSQlVkNmJE5GfEtcOGwlVSUhGyhC?= =?iso-2022-jp?b?GyRCJSQlaxsoQg==?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Nov 2017 12:31:01 -0000 青木@名古屋です。 On Mon, 13 Nov 2017 01:31:15 +0900 maruyama@ism.ac.jp (丸山直昌) wrote: > 青木 様 > > 丸山です。 > > Sun, 12 Nov 2017 22:46:48 +0900 > Tomoaki AOKI 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]