V IPWorks nastavite kodovanie cez volanie:
zip.config("Encoding=cp852");
kde zip je instancia ipworks.Zip triedy.
Inak pouzivane kodovania podla jazykovej verzie Windows sa da najst na
http://www.microsoft.com/globaldev/reference/oslocversion.mspx
S pozdravom,
-Peter Stibrany
On 6/25/07, Radovana Straube <[EMAIL PROTECTED]> wrote:
Ja tiez pouzivam komercnu kniznicu IPWorks, tiez kvoli
sifrovaniu a WinZipu. Problem je v tom, ze u zakaznika
na predvadzacom serveri je JDK 1.4 a na ostrom JDK 1.5
a IPWorks funguje spravne len s JDK 1.5.
Preto na predvadzacom serveri pouzivam java.util.zip
(a sifrovanie tam proste nefunguje) a na ostrom
serveri pouzivam IPWorks.
Mohli by ste mi prosim poslat nejaky priklad ako
kodujete nazvy suborov v IPWorks? Na stranke /n
software som v tomto ohlade nic nenasla a zo supportu
sa mi este neozvali. Ja nastastie potrebujem zipovat
len na nemeckych Windowsoch. Jedine co asi budem
musiet zistovat je, ci sa pouziva OEM 850 alebo 858.
Dakujem. S pozdravom
Radovana Straube
P.S. Pripajam aj kod ako pouzivam IPWorks
/**
* Compress a directory, encrypt the zip file
* @param _sSourceDir a source directory
* @return path to compressed and ecnrypted
archive
*/
private String compressAndEncryptDir(String
_sSourceDir, String _sPassword) throws IOException {
String sZipArchive = extractArchiveName(_sSourceDir);
try {
if (s_oLogger.isDebugEnabled()) {
s_oLogger.debug("compressAndEncryptDir->sZipArchive:
" + sZipArchive + ", dir: " + _sSourceDir);
}
Zip oZip = new Zip();
oZip.setArchiveFile(sZipArchive);
oZip.setRecurseSubdirectories(true); //demo
recurses into subdirectories
oZip.includeFiles(_sSourceDir + "*");
oZip.setPassword(_sPassword);
if (s_oLogger.isDebugEnabled()) {
s_oLogger.debug("compressAndEncryptDir->password: "
+ oZip.getPassword());
}
oZip.compress();
} catch(IPWorksZipException oExIP){
s_oLogger.error(oExIP.getMessage(), oExIP);
throw new IOException("IPWorksZIP exception
thrown: " + oExIP.getCode() + " [" +
oExIP.getMessage() + "].");
}
return sZipArchive;
}
--- Peter Stibrany <[EMAIL PROTECTED]> wrote:
> Len dodam... napokon sme v nasom produkte pouzili
> komercnu IP Works
> Zip kniznicu, lebo umoznovala sifrovat subormi tak,
> aby to WinZip
> vedel precitat. Nazvy suborov kodujeme podla toho,
> komu ich posielame.
> Ak idu na Mac, subory su v UTF-8, ak idu na Windows,
> tak zistujeme
> jazykovu verziu a podla toho urcime OEM kodovanie.
> To potom pouzijeme.
> Vacsinou to funguje, ale nie je to dokonale.
>
> S pozdravom,
> -Peter Stibrany
>
> On 6/25/07, Peter Stibrany <[EMAIL PROTECTED]>
> wrote:
> > Dobry den,
> >
> > tento problem som riesil a vysledky su nasledovne:
> >
> > 1) java.util.zip pouziva InfoZip format, ktory
> koduje mena suborov v
> > UTF-8. Toto sa neda zmenit (iba ak sposobom, ktory
> naznacil kolega
> > nizsie). (Nanestasie ZIP formatov je viac a v
> detailoch typu kodovanie
> > mien suborov ci sifrovani sa lisia).
> >
> > 2) existuje TrueZip kniznica, ktora vam umozni
> nastavit si kodovanie
> > mien suborov. (https://truezip.dev.java.net/)
> >
> > 3) Mac systemy ocakavaju mena suborov v ZIP-e
> kodovane v UTF-8
> >
> > 4) Windows ocakava mena suborov kodovane v OEM
> CodePage podla
> > jazykovej verzie Windows. Tj. slovenske/ceske
> pouzivaju OEM 852,
> > zatial co Danske windows pouzivaju 850.
> >
> > Zopar objasnujucich odkazov:
> >
> > *
>
http://squirrelsewer.blogspot.com/2005/10/i18n-zip-file-woes.html
> > *
>
http://blogs.msdn.com/michkap/archive/2005/05/10/416181.aspx
> >
> > S pozdravom,
> > -Peter Stibrany
> >
> > On 6/25/07, jeeff <[EMAIL PROTECTED]> wrote:
> > > Ahoj,
> > >
> > > implementacia v Jave nepredpoklada, ze kodovanie
> nazvov suborov je v
> > > cp852 (co v nasom regione je), takze to
> shavaruje. Musis si spravit
> > > vlastne ZipInputStream a ZipOutputStream
> (+nejake dalsie aby to cele
> > > fungovalo) podla zdrojakov a tie upravit tak,
> aby:
> > > fileName = new String(b, 0, len, "Cp852");
> > >
> > > Radovana Straube wrote / napĂsal(a):
> > > > Dobry den,
> > > >
> > > > ked zipujem subory (pouzivam standarny
> java.util.zip a
> > > > JDK 1.5), ktore maju v nazvoch diakritiku, vo
> > > > vyslednom zip-e su nazvy suborov v zlom
> kodovani.
> > > > Nic rozumneho som nevygooglila. Riesil uz
> niekto
> > > > podobny problem?
> > > >
> > > > Dakujem
> > > > Radovana Straube
> > > >
> > > > P.S. Pripajam aj metodu, ktorou pouzivam na
> zipovanie
> > > >
> > > > /**
> > > > * Compress a directory
> > > > * @param _sSourceDir a source directory
> > > > * @return a path to an archive
> > > > */
> > > > private String compressDir(String
> _sSourceDir)
> > > > throws IOException {
> > > >
> > > > // These are the files to include in the
> ZIP file
> > > > String[] sFilenames = new
> File(_sSourceDir).list();
> > > >
> > > > // Create a buffer for reading the files
> > > > byte[] byBuf = new byte[1024];
> > > >
> > > > // Create the ZIP file
> > > > String sZipArchive =
> extractArchiveName(_sSourceDir);
> > > > ZipOutputStream out = new
> ZipOutputStream(new
> > > > FileOutputStream(sZipArchive));
> > > >
> > > > // Compress the files
> > > > for (int i = 0; i < sFilenames.length;
> i++) {
> > > > FileInputStream in = new
> > > > FileInputStream(_sSourceDir + sFilenames[i]);
> > > >
> > > > // Add ZIP entry to output stream.
> > > > out.putNextEntry(new
> ZipEntry(sFilenames[i]));
> > > >
> > > > // Transfer bytes from the file to
> the ZIP file
> > > > int iLen;
> > > > while ((iLen = in.read(byBuf)) > 0)
> {
> > > > out.write(byBuf, 0, iLen);
> > > > }
> > > >
> > > > // Complete the entry
> > > > out.closeEntry();
> > > > in.close();
> > > > }
> > > >
> > > > // Complete the ZIP file
> > > > out.close();
> > > >
> > > > return sZipArchive;
> > > > }
> > > >
> > > >
> > > >
> > > >
>
____________________________________________________________________________________
> > > > Boardwalk for $500? In 2007? Ha! Play Monopoly
> Here and Now (it's updated for today's economy) at
> Yahoo! Games.
> > > >
>
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow
> > > >
> > >
> > >
> > > --
> > > jeeff
> > >
> > >
> >
>
____________________________________________________________________________________
Sick sense of humor? Visit Yahoo! TV's
Comedy with an Edge to see what's on, when.
http://tv.yahoo.com/collections/222