Dizeden bir zip dosyası oluşturun


0

İnternetten zip dosyası indiriyorum ve onu düz metin dizesi olarak alıyorum. Şimdi bunu diske kaydetmek istiyorum, ancak bu metin dizesini bir dosya arabelleğine nasıl dönüştürmeliyim? Bu dizenin bir dosya sistemi yazma işlevinde kullanılabilmesi için yapılması gerekenler nelerdir?

DÜZENLE:

Verileri doğrudan diske yazdığımda sorun zip dosyası bozuluyor.

İndirilen dosyanın boyutu 34712 bayttır, ancak doğrudan diske kaydettiğimde 64760 bayt olur.

Dosyaların ilk 5 satırı:

The new created file as binary:
504b 0304 1400 0200 0800 47fd 3a3d 3efd
fd57 fd5b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 fdfd 7758 fd4b
1738 fdfd fdfd 2424 fa63 fdfd 4140 fd45
5a30 4840 6a28 2140 0811 1240 050c fd05

The new created file as utf8:
504b 0304 1400 0200 0800 47ef bfbd 3a3d
3eef bfbd efbf bd57 efbf bd5b 0000 006a
0000 0c00 0000 6963 6f6e 7365 7874 2e65
7865 efbf bdef bfbd 7758 efbf bd4b 1738
efbf bdef bfbd efbf bdef bfbd 2424 f48e


Original noncorrupted file from the internet:
504b 0304 1400 0200 0800 4799 3a3d 3eae
b857 865b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 edfd 7758 934b
1738 8abe e981 2424 f48e a1a3 b4d0 4140
e945 5a30 4840 6a28 2140 0811 1240 050c

1
Ne tür bir metin dizesi? Metin olarak görüntülenmeye çalışan ikili veri ise, çok tuhaf karakterler alırsınız. Büyük olasılıkla, kodu çözmeniz gereken Base64'tür. Ancak kodlama tamamen kaynağa bağlıdır.
Bob

Yanıtlar:


0

Neden sadece dosya indiremiyorsunuz?

Akışı indirmek için ısrar ederseniz, dosyaya ne elde ettiğinizi yeniden yönlendirin;

* Nix:

output_of_download_command > /path/to/file_name.zip

Pencereler:

output_of_download_command > c:\path\to\file_name.zip

Dikkat edin, gerçek dizgiden önceki ve sonraki bazı ek bilgileriniz olabilir! Ne yaptığınızı tam olarak bilmeden, belirli bir komut vermeniz imkansız ancak tüm hataları farklı bir yere yönlendirebilirsiniz:

Lütfen buraya bakınız:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true


Teşekkürler, sorun olsa ortaya çıkan zip dosyasının internete yüklenen orijinalden iki kat daha büyük olması ve aynı zamanda bozuk olmasıdır. Bunun utf8 olan kodlamayla ilgisi olduğuna inanıyorum. Zip dizgisi kaydedilmeden önce kodlanmalı / kodlanmalı mı yoksa başka bir şey mi olmalı?
richie

Bir zip dosyası kodlama olarak utf-8'e sahip olamaz. Utf-8, metin verileri için bir kodlamadır. Zip dosyası ikilidir.
Lorenz Meyer

0

Bu yüzden önce dizgiyi bir Uint8'e dönüştürerek ve oradan kaydedebileceğim bir dosya tamponuna dönüştürerek bir çözüm buldum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.