Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak poznat kódování souboru ? (ANSI 1250, DOS)

Lámu si hlavu, kde je příznak, který aplikaci říká, zda je textový soubor kódovaný v ANSI(např.1250) nebo DOS(OEM). Mám totiž dva soubory, které se zdají být shodné, oba jsou kódování v ANSI 1250, ale o jednom z nich si prohlížeč v Total Commanderu (a i jiné programy) myslí, že je kódovaný v DOSu a ukáže ho špatně. Pokud ručně přepnu kódování, je vše OK. Dle čeho to ale poznává ? Čím ten příznak kódování editovat ?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Zadny takovy priznak neni. Jedina moznost je detekovat to podle znaku, ktere se vyskytuji pouze v ko…
Jan Fiala 15.10.2008 12:03
Jan Fiala
Tedy, JaFi, já vím, že jsi na tohle expert, takže máš zcela určitě pravdu, ale doteď jsem si myslel,…
Pytlík 15.10.2008 12:09
Pytlík
Predpokladam, ze soubor bude obsahovat většinou text a nám jde o písmena s diakritikou, takže o horn…
Jan Fiala 15.10.2008 12:31
Jan Fiala
To mi přijde jako dost nejednoznačná definice. A krom toho to nevysvětluje, proč dva z mého pohledu…
ewi 15.10.2008 13:39
ewi
TC to detekuje podla vyskytu nejakych specifickych znakov/bajtov v subore, casto su to rozne ciary =… poslední
MM.. 15.10.2008 18:45
MM..

Tedy, JaFi, já vím, že jsi na tohle expert, takže máš zcela určitě pravdu, ale doteď jsem si myslel, že všech 256 kombinací bitů jednoho byte (až na těch pár vyjímek řídících znaků) se vyskytuje, nebo může vyskytovat, ve všech znakových sadách. Máš-li chuť (a trpělivost), dej sem nějaký příklad. Chytřejší sice nebudu, ale alespoň mně to nebude vrtat hlavou...

Predpokladam, ze soubor bude obsahovat většinou text a nám jde o písmena s diakritikou, takže o horní čáat ASCII tabulky (nad #127)
V ruzných znakových sadách jsou písmena s diakritikou umístěna pod různými kódy, míchají se se semigrafickými znaky apod. Takže jdou vytipovat písmena, u kterých je v jiných znakových sadách pod stejným kódem "neznak" - nějaký symbol apod.
Pak vezmu soubo a počítám tyto znaky (třeba 3 v každém kódování) a podle toho, co vyhraje, tak to beru jako detekované kódování

To mi přijde jako dost nejednoznačná definice. A krom toho to nevysvětluje, proč dva z mého pohledu stejné soubory se stejným obsahem vzniklé ve dvou různých SW, mají sice stejné ANSI kódování, ale cílový SW vnímá jeden z nich jako ANSI a druhý jako DOS. Konkrétně se jedná o 2 cuesheety vzniklé buď v EACu nebo Plextools.
Jak bych potom zabezpečil, aby SW vždy posoudily kódování souboru správně ? (V mém případě postačí vždy ANSI)

TC to detekuje podla vyskytu nejakych specifickych znakov/bajtov v subore, casto su to rozne ciary =================== apod robene specialnymi znakmi, ktore tu detekciu zblbnu.
Skus si tie "shodne" subory porovnat binarne (mas na to zaskrtavatko aj v TC u porovnania suborov) a uvidis ktory bajt je tam blby (bude to bajt s hodnotou >80hex alebo <20hex). Az ho odmazes tak to bude detekovat TC spravne.

P.S. prip. moze to blbnut aj znak konca suboru (tusim 1Eh) na konci suboru, potom si asi TC mysli ze je to DOS, ale neviem ja som TC neprogramoval. Ak tam je tak mozes ho skusit odmazat napr. v notepade...

Zpět do poradny Odpovědět na původní otázku Nahoru