質問編集履歴
1
質問内容をもっと詳しく書きました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
-
zipファイルに含まれるテキストファイル
|
1
|
+
zipファイルに含まれるテキストファイルの内容を変更して、zipに再び戻して、保存したいのですが、
|
2
2
|
|
3
|
-
元のファイルがSJISの場合、
|
3
|
+
元のファイルの内容がSJISの場合、zipに戻すと問題が発生します。
|
4
|
+
|
5
|
+
zipファイルを解凍して、テキストファイルを開くと、文字化けしてしまいます。
|
6
|
+
|
7
|
+
SJISで作られてデータをUTF-8で保存しているため、
|
8
|
+
|
9
|
+
テキストエディタ等で、「文字コードを指定」して開いても文字化けしていました。
|
4
10
|
|
5
11
|
|
6
12
|
|
@@ -11,6 +17,10 @@
|
|
11
17
|
└def.txt UTF-8で作成されたファイル
|
12
18
|
|
13
19
|
```
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
処理としては、ZipInputStreamでzipファイルを読み込んで、内容を変更後、ZipOutputStreamでzipに戻しています。これによって、作成されたzipファイルを解凍して、テキストファイルを開くと文字化けしています。
|
14
24
|
|
15
25
|
|
16
26
|
|
@@ -31,3 +41,9 @@
|
|
31
41
|
BufferedReader br = new BufferedReader(isr);
|
32
42
|
|
33
43
|
```
|
44
|
+
|
45
|
+
Javaの文字コードは、UTF-8だと思うので、何も指定しないと、UTF-8で保存されてしまいます。
|
46
|
+
|
47
|
+
文字コードを意識する必要もなく、byteコードで読み込んでbyteコードで出力すれば、
|
48
|
+
|
49
|
+
文字化けしないのではないかと思うのですが、ZipOutputStream以外に、どんなクラスを使うのが適切なのでしょうか。byteコードで入出力できるzipクラスはありますでしょうか。
|