質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

4回答

2165閲覧

zipファイルの複製について

madao0708

総合スコア10

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

2グッド

0クリップ

投稿2016/12/19 13:11

先日、先輩からzipファイルはバイナリで出来ているというお話を聞きました。
そこで、単純に思ったことなのですが、例えばデスクトップに適当に作ったzipファイルをメモ帳で開き、
中身のバイナリ(文字化けしている)をCtrl+Aで全選択からのCtrl+Cでコピーし、新しいメモ帳でCtrl+Vでペースト、
名前をつけて保存で拡張子を全てのファイルとして設定し、「test.zip」というような感じでzipファイルを作成すれば
zipファイルを簡単に作成できるのでは?と考えました。

実際に試した結果、ファイルが破損している等の理由で正常に解凍できませんでした。

疑問1
なぜ、複製できなかったのか?

疑問2
上記と似た方法で複製は可能なのか?

有識者の皆様、無知な私に教えていただけたら、幸いです。。。

attakei, iwanote👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

なぜ、複製できなかったのか?

テキストファイルを扱うエディターが扱うのはバイナリーデータそのものではなく文字です。ファイルの中のバイト列は特定の文字セット(MS932, UTF-8, UTF-16といったもの)でエンコードされたもの仮定して扱われます。文字コードというのはあらゆるバイトパターンに対して何からの文字が必ず対応するわけではありません。例えばエディターがASCIIコードしか扱えないものであれば(例えば)0x0A,0x0D,0x20~0x7E以外の範囲は文字とは認識されず単に捨てられたり不当な文字として何らかの特別な文字に置き換えられたりします。これはASCII文字セットに限らずどのような文字セットにおいても範囲の広い・狭いの違いがあるだけで同様です。

つまりバイナリーデータを文字として扱ったとたんに情報は失われてしまうのでそれを何も編集せずにファイルへ書き戻したとしても元のバイナリーデータには戻りません。


補足:本質問には直接関係ないですが、上の回答に書いたMS932という用語は不適切でした。
MS932はMicrosfot社独自ShiftJISのことを表すJava言語での文字セット名称です。単にMicrosoftのShiftJISとでもいった方がよかったです。Windowsプログラミングの世界ではShift_JISあるいはコードページ932と呼ばれています。

文字セットは今の世の中でも充分には統一されていないようでOSや文脈ごとに呼び名が微妙に違います。自分は知っている範囲で厳密に言おうとしてついMS932というような言い方をしてしまいました。すみません。

投稿2016/12/19 16:51

編集2016/12/20 10:19
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madao0708

2016/12/20 10:07

一般的に使われているテキストエディタでは「文字」として扱われており、文字は文字コードを用いて表現されているため、バイナリの情報が文字コードのパターンにマッチせず、情報が欠落してしまうということですかね。 ご説明いただき、ありがとうございます。
guest

0

疑問1
メモ帳はテキストエディタです。
バイナリファイルの中から文字として表現できるもののみが表示されていると思われます。
その状態でコピペしても情報が欠落しているため、コピーはできません、

疑問2
バイナリエディタを使えば可能です。
ま、そんなことしなくても、単にzipファイル自体をコピーすれば済む話ですが。

投稿2016/12/20 00:09

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madao0708

2016/12/20 10:04

テキストエディタではバイナリの情報を全て表示できないのですね。 勉強になりました。ありがとうございます。 単にzipファイルをコピーすれば済む話というのは当然承知の上での質問です。 単純にそういうことができるのかなと思ったため、質問させて頂きました。
guest

0

回答1
なぜ、複製できると思ったのか?

回答2
ファイルをメモ帳で開かず、エクスプローラでファイルをCtrl+Cでコピーし、Ctrl+Vでペーストして test.zip というような名前を付ければ複製できます。

投稿2016/12/19 13:36

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madao0708

2016/12/20 10:20

回答1 回答になっていないと思います。 回答2 本当にコピーの仕方がわからず質問したものだと思ったのですか? 質問でコピー&ペーストの話をしている時点でそのやり方は知っている前提だとわかるはずですが。。。 当然のことをそんなドヤ顔で答えられても困ります。
matobaa

2016/12/20 12:45 編集

> 本当にコピーの仕方がわからず質問したものだと思ったのですか? そんなわけないよね。質問には「無知な私に」って書いてあるけど、ちゃんとわかってるじゃないですか。 (このあといろいろ書いたんだけど読まずに解決済になったみたいなので残念ながら)
madao0708

2016/12/20 13:17

ちゃんと読みましたよ。 最初からそう書いていただければ、良かったなぁと残念ですが。
matobaa

2016/12/20 13:22

いろいろ苦労すると思うけど頑張ってね応援する
guest

0

メモ帳で編集したらできませんでした。
バイナリエディタで確認したところ一部データが変化していました。
バイナリエディタ上でコピーしたところ正常に動きました。
詳しくないので申し訳ありませんが、メモ帳で開く際の文字セットやヘッダーなどが原因なのではないかと思われます

投稿2016/12/19 13:56

iwanote

総合スコア295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madao0708

2016/12/20 10:08

メモ帳ではなく、バイナリエディタなら可能ということですね。 貴重な情報ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問