質問するログイン新規登録

質問編集履歴

1

ソースコードを追加

2015/09/17 02:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,32 @@
18
18
 
19
19
  恐らくアーカイブ内部のバイトデータを何らかの形でstringにしてしまっているのが問題ではないかという推測しています。
20
20
 
21
- 以上、よろしくお願いします。
21
+ 以上、よろしくお願いします。
22
+
23
+ 取得時のコードを書きました。
24
+ ```C#
25
+ private void GetName()
26
+ {
27
+ using (var readStream = new FileStream("読み込むアーカイブ名.zip", FileMode.Open, FileAccess.Read))
28
+ using (var stream = Stream.Synchronized(readStream))
29
+ {
30
+ using (var r = ArchiveFactory.Open(stream))
31
+ {
32
+ foreach(var entry in r.Entries)
33
+ {
34
+ string name = entry.Key; //文字化けするコード
35
+ string name2 = convert(entry.Key); //文字化け対策コード
36
+ }
37
+ }
38
+ }
39
+ }
40
+ private static string convert(string text)
41
+ {
42
+ var source = Encoding.ASCII; //暫定的に対象をASCIIに
43
+ var destination = Encoding.GetEncoding("Shift_JIS");
44
+
45
+ var bytes = source.GetBytes(text);
46
+ var sjisBytes = Encoding.Convert(source, destination, bytes);
47
+ return destination.GetString(sjisBytes);
48
+ }
49
+ ```