You are here: PSPad forum > České diskuzní fórum > Jak vynutit otevření souboru v určitém kódování

Jak vynutit otevření souboru v určitém kódování

Goto Page: 1 2 Next

#1 Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-24 20:46 | IP: IP Logged

Z nějakého důvodu se mi v PSPadu uložil soubor pravděpodobně v kódování ISO 8859-P2
Když otevřu soubor, PSPad předpokládá, že je v kódování CP 1252.
Jak donutit PSPad aby soubor otevřel v kódování v jakém potřebuju?

Návod jsem našel zde:
forum.pspad.com

Nicméně toto nefunguje. Když mám otevřený soubor a změním kódování v menu Kódová stránka, tak se otevřený soubor převede do daného kódování. To nechci.

Options: Reply | Quote | Up ^


#2 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: pspad | Date: 2023-03-25 05:10 | IP: IP Logged

V menu kodovani přepnout na pozadovanou kodovou stranku a CTRL+R (reload)
Hned uvidite, zda je to v poradku

Pak prepnout na tu, ktera mela byt a ulozit

Options: Reply | Quote | Up ^


#3 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-25 08:14 | IP: IP Logged

Dobrý den,
máte pravdu, funguje to. Zachránil jste mi den smiling smiley Nepřečetl jsem si popup s varováním a automaticky jsem si myslel, že se mě to ptá na uložení souboru smiling smiley

Dá se nějak PSPad donutit aby otevíral textové soubory vždycky v kódování, které si zvolím?
Podle čeho vlastně detekujete kódování souboru? Dovedu si představit, že se dá detekovat UTF8/16. Jak ale detekujete 8b kódování?

Options: Reply | Quote | Up ^


#4 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-25 08:30 | IP: IP Logged

Už jsem to našel.
Změnu defaultního kódování uděláme takto
Nastavení -> Nastavení programu -> Adresáře a soubory -> Výchozí CP pro otevírání souborů

Tady máte chybku. Zreprodukujete takto:
Defaultní kódování pro otevření souboru je řekněme ANSI.
1) Otevřete souboru
2) Změňte defaultní kódování např. na ISO 8859-2
3) Zavřete soubor
4) Zavřete PSPad -> Access violation ...

Verze 5.0.7

Edited 1 time(s). Last edit at 2023-03-25 08:33 by xxsawer.

Options: Reply | Quote | Up ^


#5 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: pspad | Date: 2023-03-25 08:43 | IP: IP Logged

Používáte 32b verzi programu? 64b verze je označená jako "experimentální". Zdrojový kod je stejný, ale překladač to trochu komplikuje.

Options: Reply | Quote | Up ^


#6 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-25 09:36 | IP: IP Logged

Máte pravdu, 32b verze nepadá ani z toho nelítají exceptiony.
Narazil jsem na další problém. Zajistil jsem totiž, že díky čárům s kódováním mám v textovém souboru dvě různá kódování ISO 8859-2 a Windows CP 1250.
Zkuste následující:
V kódování CP1250 napište např "aža". Znak "ž" je 9E. Přepněte na ISO 8859-2, kde je 9E nedefinovaný. Znak "ž" zmizí. Binárně tam naštěstí pořád je.
Toto je určitě špatně. Znak by měl být nahrazen nějakým replacement znakem. Např. vim zobrazuje mezeru.
Když máte takových znaků víc za sebou a zapnete zvýrazňování označeného textu a označíte tyto znaky, tak to začne dělat psí kusy.

Options: Reply | Quote | Up ^


#7 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: pspad | Date: 2023-03-25 10:11 | IP: IP Logged

Znaky se nemohou "nahrazovat" něčím, protože při změně kódování by nedošlo k nahrazení zpět.
Pokud se vám kus zobrazí v 8859-2 a část v CP1250, pak si to složte do nového souboru.

Options: Reply | Quote | Up ^


#8 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-25 11:38 | IP: IP Logged

Možná jsem se špatně vyjádřil. Když nemůžu nějaký znak zobrazit, tak musím zobrazit nějaký replacement character. V tomhle případě např. znak 9E v ISO 8859-2 neexistuje. I tak je ale potřeba něco zobrazit.

Options: Reply | Quote | Up ^


#9 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: pspad | Date: 2023-03-26 13:14 | IP: IP Logged

Rozumím. Ale když používám nějaký font a ten font nemá pod hodnotou znaku nic, pak těžko zobrazím zástupný znak. Nevím, jak bých otestoval, že při vykreslování tím fontem se nic nezobrazí.

PSpad funguje tak, že jakýkoliv soubor při otevření převede do UTF16-LE, tam uživatel edituje a při uložení se soubor převede do nastavené kódové stránky.

Options: Reply | Quote | Up ^


#10 Re: Jak vynutit otevření souboru v určitém kódování

Posted by: xxsawer | Date: 2023-03-26 20:12 | IP: IP Logged

Jak to souvisí s fontem? Mám otevřený textový soubor, v něm znak 9E a tvrdím, že textový soubor je v kódování ISO 8859-2 (chyba). Znak 9E v ISO 8859-2 neexistuje -> vykreslím nějaký zástupný znak, třeba otazník.
Převod na UTF16 proč? Zajímalo by mě jak se takový znak převede do UTF16? Možná, že nijak a právě proto "zmizí".
Není UTF8 už dávno nadmnožina UTF16?

Options: Reply | Quote | Up ^


Goto Page: 1 2 Next





Editor PSPad - freeware editor, © 2001 - 2024 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR