čeština v zip
Moderator: Hacker
čeština v zip
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
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
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?
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
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.
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.
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.
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ě.
Pozn.: Doufám, že Ti to k něčemu bude
(a také, že je to správně).
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)
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ě.

Pozn.: Doufám, že Ti to k něčemu bude

jvh,
Tak sme dostali odpoved:
Roman
Tak sme dostali odpoved:
Sorry.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.
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.
2 HackerHacker 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.
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...
jvh,

Roman
No, ja by som rad, ale kym nemame funkcny algoritmus, ako naisto zistit kodovanie, tak ako poznam Christiana, ho nepresvedcime.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..

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.
Ahoj,Hacker wrote:No, ja by som rad, ale kym nemame funkcny algoritmus, ako naisto zistit kodovanie, tak ako poznam Christiana, ho nepresvedcime.
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?
jvh,
Roman
Mg, tak nejak sme uz nieco riesili s rustinou v bete...vítězí kódování s nejvíce znaky do ASCII 127 (nebo nejméně znaky nad 128)
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.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?
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.