čeština v zip

Moderated forum for Slovak and Czech users

Moderator: Hacker

Post Reply
geon
Junior Member
Junior Member
Posts: 11
Joined: 2009-02-25, 11:33 UTC

čeština v zip

Post by *geon »

Ahoj,

nezobrazují se mi správně české znaky v zipech, pokud je zazipováno pomocí windowsovské komprimace. Mám 7.02.

Díky za pomoc, jestli to jde
User avatar
totcmd
Senior Member
Senior Member
Posts: 223
Joined: 2006-11-06, 00:07 UTC
Location: Praha
Contact:

Post by *totcmd »

O jaké soubory se jedná?
html, txt, doc,...

Kdy se ti to děje?
Po plnohodnotné extrakci nebo při extrakci do složky temp nebo při otevření souboru přímo ze zip archivu...

Kde se nezobrazují ty znaky ok?
V prohlížeči (např v IE pokud se jedná o *.html)
V editoru (např v notepad otevřený *.html)
nebo v CTRL+Q ... náhled na soubor v TC?
Jeden soubor vladne vsem, jeden jim vsem kaze, jeden vsechny ovladne... totalcmd.exe
geon
Junior Member
Junior Member
Posts: 11
Joined: 2009-02-25, 11:33 UTC

Post by *geon »

Jedná se o jakékoliv soubory, které mají české znaky ve jméně (ne v obsahu souboru).

Ve Windows, v průzkumníkovi, zakomprimuji - pravé tlačítko - odeslat - komprivaná složka metoda zip. čeština je v zipu OK.

Otevřu TC, Enter na souboru, vidím v panelu seznam souborů v zipu, a oni mají již ty české znaky špatně. I když je nakopíruji někam jinam přes F5, jsou znaky pořád špatně. Pokud rozbaluji pod Windows pod průzkumníkem, tím vestavěným windows komprimátorem, tak je vše OK.

Snad jsem to již napsal srozumitelně, kdyžtak ještě upřesním.
Díky.
User avatar
Hacker
Moderator
Moderator
Posts: 13064
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Ahoj geon,
Potvrdzujem. Uvidime, ci sa s tym daco da robit. Dam vediet.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
jvh
Member
Member
Posts: 187
Joined: 2007-07-20, 12:28 UTC

Post by *jvh »

2 Hacker:
Tak jsem se v tom trochu hrabal a problém je asi ve File Headeru ZIP souboru, který produkují Windows a který pak čte TC.

Code: Select all

Z dokumentace PKWARE Appnote.txt:

 F.  Central directory structure:
      [file header 1]
      ....
      [file header n]
      [digital signature] 

      File header:
        central file header signature   4 bytes  (0x02014b50)
        version made by                 2 bytes
        ...

 J.  Explanation of fields:
      version made by (2 bytes)

         0 - FAT file system (DOS, OS/2, NT)      + PKWARE 2.50+ VFAT, NTFS
         ...
         11 - MVS   | NTFS file system (WinNT) (actively used by Info-ZIP's Zip for NT since Sep-1993)
V ZIPu z Windows je ve File Headeru/Headerech v upper byte "version made by" hodnota 0x0B (HEX) -> soubor vytvořen -> 11 - MVS NTFS file system (WinNT).

Při komprimaci pomocí TC je v odpovídajícím bytu hodnota 0x00 -> soubor vytvořen -> 0 - FAT file system (DOS, OS/2, NT).

Pokud jsou File Header byty 0x0B nahrazeny 0x00, TC načte diakritiku normálně.:idea:

Pozn.: Doufám, že Ti to k něčemu bude :) (a také, že je to správně).
User avatar
Hacker
Moderator
Moderator
Posts: 13064
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

jvh,
Dik, preposlal som, uvidime.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
Hacker
Moderator
Moderator
Posts: 13064
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

jvh,
Tak sme dostali odpoved:
ghisler(Author) wrote:The problem is that it's impossible to know for sure whether a zip file uses DOS encoding or Windows encoding. TC therefore assumes that files which report "made by DOS" use the DOS font, and "made by Windows" use Windows font. Unfortunately some programs ignore that and report "made by Windows" but use DOS encoding. There is no good way to find these, TC checks some characters, but cannot find all situations because some character codes exist in both encodings. :(
Sorry.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
jvh
Member
Member
Posts: 187
Joined: 2007-07-20, 12:28 UTC

Post by *jvh »

Hacker wrote:Tak sme dostali odpoved:
ghisler(Author) wrote:The problem is that it's impossible to know for sure whether a zip file uses DOS encoding or Windows encoding. TC therefore assumes that files which report "made by DOS" use the DOS font, and "made by Windows" use Windows font. Unfortunately some programs ignore that and report "made by Windows" but use DOS encoding. There is no good way to find these, TC checks some characters, but cannot find all situations because some character codes exist in both encodings. :(
2 Hacker
Díky za odpověď. Divné je, že např. WinRAR a 7-Zip si s tím poradí, takže způsob jak zjistit kódování určitě existuje.
V rychlosti mě ještě napadlo (ber to s velkou rezervou) zkusit z názvu souboru odstranit diakritiku a podle výsledku určit zda se jedná o kódování DOS nebo Win...
User avatar
Hacker
Moderator
Moderator
Posts: 13064
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

jvh,
V rychlosti mě ještě napadlo (ber to s velkou rezervou) zkusit z názvu souboru odstranit diakritiku a podle výsledku určit zda se jedná o kódování DOS nebo Win..
No, ja by som rad, ale kym nemame funkcny algoritmus, ako naisto zistit kodovanie, tak ako poznam Christiana, ho nepresvedcime. :(

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
jvh
Member
Member
Posts: 187
Joined: 2007-07-20, 12:28 UTC

Post by *jvh »

Hacker wrote:No, ja by som rad, ale kym nemame funkcny algoritmus, ako naisto zistit kodovanie, tak ako poznam Christiana, ho nepresvedcime. :(
Ahoj,

univerzálně použitelný postup je:
- načíst text s diakritikou
- bez ohledu na kódování, provést převod pro všechny znak. sady, t. j. v případě češtiny
DOS (CP852) do ASCII + spočítat znaky do ASCII 127 (nebo nad 128),
Win (CP1250) do ASCII + spočítat znaky do ASCII 127 (nebo nad 128),
ISO 8859-2 do ASCII + spočítat znaky do ASCII 127 (nebo nad 128),
- vítězí kódování s nejvíce znaky do ASCII 127 (nebo nejméně znaky nad 128), hodnoty 127 a 128 míněny včetně

Převodní tabulky bych teoreticky mohl dohledat.

Problémy:
- převod z vícero znak. sad asi bude chvíli trvat (může pomoci omezení velikosti vstupních dat, detekce jazyka, detailní nastavení, ...)
- 100% jistota správně vybraného kódování stejně nebude, obzvlášť u krátkých textů
- poměrně dost práce s implementací vs. malý zisk, takže být na místě p. Ghislera, věnoval bych se něčemu přínosnějšímu

A jsme zase tam, kde jsme byli... :(

Co zabudovat možnost manuální změny kódování ANSI (Win)/ASCII (DOS) při prohlížení ZIP archívů, podobně jako při prohlížení v Listeru?
User avatar
Hacker
Moderator
Moderator
Posts: 13064
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

jvh,
vítězí kódování s nejvíce znaky do ASCII 127 (nebo nejméně znaky nad 128)
Mg, tak nejak sme uz nieco riesili s rustinou v bete...
Co zabudovat možnost manuální změny kódování ANSI (Win)/ASCII (DOS) při prohlížení ZIP archívů, podobně jako při prohlížení v Listeru?
Navrhol som pouzit nejaky hotkey na vyvolanie menu pri vstupovani do archivu, cim by sa vyriesil aj problem viacerych WCX schopnych otvorit dany archiv, ale, akosi, bez odozvy. Zial.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Post Reply