You are here: PSPad forum > České diskuzní fórum > Re: Problem s detekciou UTF-8, ulozenie, otvorenie

Re: Problem s detekciou UTF-8, ulozenie, otvorenie

#1 Problem s detekciou UTF-8, ulozenie, otvorenie

Posted by: pirios | Date: 2022-04-09 21:00 | IP: IP Logged

Dobry den. Tento problem mal program vo svojej ere viackrat. Niekedy som mal roky pokoj smiling smiley Naposledy som pouzival aktivne verziu 5.0.0, nebol ziadny problem. Ale nieco sa stalo (neviem co), ale niektore subory PHP mi odmietol korektne zobrazit, neukazal UTF-8 (v UTF-8 no BOM kodujem vsetky php projekty) a vsetky diakriticke znaky napisal do tradicnej "hala-bala" znakovej sady. Windows (Notepad) vsak tieto subory zobrazi/ulozi spravne s diakritikou a aj ukazuje, ze su v UTF-8 (bez rozdielu ci maju ident. bajty UTF-8).

ÄŚas operácie → Čas operácie

Bol som zvyknuty, ze ak subor NEobsahoval potrebne znaky na UTF-8, tak to jednoducho ulozil predvolene do ANSI. Je vsak zvlastne, ze to nerobi pri kazdom PHP subore co mam (bez rozdielu ci je to ciste PHP alebo obsahuje meta data HTML o znakovej sade). Tento subor nech som menil jak chcel, vzdy mi ho otvoril s haky-baky znakmi - to iste, ak som jeho obsah vlozil do noveho suboru. Ale ak som v programe zadal UTF-8 no BOM a doplnil som dalsie nove diakriticke znaky, tak uz ten subor ulozil chybne. Moje nove znaky boli OK, ale tie halaba uz ostali natrvalo. Aby mi teda PSPad nedomrvil vsetky texty, co obsahuje, za kazdym ked ho chcem upravovat, musim pouzit prikaz CTRL+R, dat UTF-8 no BOM a potom robit zmeny. A takto to za kazdym opakovat. Je to otravne. Toto mi predtym nerobil - pouzival som v5.0.0 od 11/2018. Tak som si povedal, ze program aktualizujem a dam si 5.0.6. Nepomohlo, ten isty problem, navyse som zistil, ze mi novy program neuklada poziciu praveho okraja (tu vertikalnu sedu ciaru), verzia 5.0.0. mi to ulozila vzdy tam, ked som ju v predoslej relacii nechal.

Neviem kedy to presne zacalo. Ale mari sa mi, ze to zacalo az tento rok. Windows sice dostava nejake patche, ale tykaju sa viacmenej bezpecnosti a programov, ktore mam od MS. Najakym zasadnym zmenam nedochadza. To som uz velakrat za tu existenciu Windows zazil, ze nejaky patch domrvil spravanie inych programov.

Pouzivam Windows 7 Pro SP1 64-bit v anglickej mutacii (aktivne SK/EN znakove sady).

Dakujem za info.

Edited 1 time(s). Last edit at 2022-04-09 21:07 by pirios.

Options: Reply | Quote | Up ^


#2 Re: Problem s detekciou UTF-8, ulozenie, otvorenie

Posted by: vbr | Date: 2022-04-10 14:05 | IP: IP Logged

Zdravím,
pro chování kódování (pro otvírání i vytváření nových souborů) lze ověřit nastavení (mohlo se stát, že při nějaké aktualizaci se přepsala dřívější nastavení nějakými výchozími hodnotami (?)).
v menu je to hlavně
Kódová stránka
[ ] Automatická detekce
a v menu
Upravit...
je možné změnit výběr kódování, které se mají zohledňovat/nabízet k vybrání
zvýrazněním řádku a posouváním šipkami pod seznamem lze upravit pořadí a první položku

Kromě toho je celkové nastavení:

Nastavení programu: Adresáře a soubory
[ ] Zapamatovat stav souboru
a
Výchozí CP pro otevírání souborů ...

(samostatné - přednostní - nastavení pro kódování je možné i v projektech)

Celkově se PSPad - pokud to chápu správně - snaží použít pro otevření souboru buď kódování zjištěné autodetekcí - když je povolena
nebo kódování nastavené jako výchozí v uvedených nastaveních (projektu nebo celého programu)

Pokud podle toho má být použito utf-8, ale s obsahem souboru není slučitelné a dekódování vede k chybě, použije se místo něho jiné, neunicodové (patrně ANSI, nebo možná první vhodná položka v pořadí kódování v menu Kódová stránka(?) - to by případně asi nejlépe vysvětlil autor).

Nezohledňují se údaje o kódování v obsahu souborů (v meta tagu, v komentářích apod.)

Při aktivovaném nastavení:
[x] Zapamatovat stav souboru
se v pomocném souboru programu interně uchovávají individuální nastavení pro otevřený soubor (podle souborové adresy), mezi jinými vlastnostmi je to i ručně přepnuté kódování; při dalším otevření se použije znovu.

Trochu komplikované je kódování při hromadném hledání (a případně nahrazování) v souborech - tam je nastavitelné společně pro celé hledání (i když prohledávané soubory mohou mít různé) - toho se ale uváděné komplikace netýkají.

Popisované problémy vypadají, jako by bylo používané neunicodové kódování pro soubory utf-8; to by bylo při napevno nastaveném např. ANSI, bez autodetekce; a snad by se to mohlo vyřešit (pro tyto případy) nastavením utf-8 jako výchozího kódování; pak lze vyzkoušet, jak pro používané soubory funguje autodetekce a podle toho ji aktivovat nebo vypnout.

Nevím, jestli hraje roli použití anglických windows - svého času bývalo třeba systémové nastavení kódové stránky neunicode programů (aby se používalo např. win1250 místo win1252 - nejspíš už to ale nebude relevantní, tím spíš, že má jít o utf8 a ne ansi.

Je ale možné, že problémy souvisí ještě s něčím dalším...
zdravím,
vbr

Options: Reply | Quote | Up ^


#3 Re: Problem s detekciou UTF-8, ulozenie, otvorenie

Posted by: pspad | Date: 2022-04-10 14:25 | IP: IP Logged

Funguje to takto:
pokud není aktivovaná autodetekce, pak se provádí při otevření test na BOM. Pokud soubor obsahuje, pak se podle toho otevře.
Dále se provádí detekce na UTF-8 znaky v první části souboru. Pokyud je zjištěna přítomnost UTF-8, PSPad se pokusí soubor otevřít jako UTF-8.

Pokud dojde k tomu, že je tam mix kódování, následuje dotaz, zda otevřít natvrdo jako UTF-8 nebo ne. V případě, že ne, otevírá se v ANSI kódování, které je označeno jako "oblíbené" (Ctrl+Click v menu kódování nebo nastavení kódování v nastavení programu / soubory)

Options: Reply | Quote | Up ^






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