You are here: PSPad forum > České diskuzní fórum > Při editaci s UNIX koncem řádku přes FTP vznikají v souboru nečitelné znaky
Posted by: stanislav.mikusek | Date: 2015-12-18 15:36 | IP: IP Logged
Následující chyba vzniká náhodně, většinou na velkých souborech po delší práci.
Mám PsPad na Windows 7, otevřu přes FTP soubor "VzorChyby.4gl" na UNIXovém stroji s kódováním ISO 8859-2. V souboru je kód
FOR x=1 TO 3
b=x
c=x
d=x
END FOR
Na spodní liště je typ konce řádku a kódování
UNIX, Window(CP1250)
Změním kódování na ISO 8859-2 :
V menu volím Formát, změním kódování na ISO 8859-2. Zavřu soubor. Změny neuložit.
Otevřu soubor.
Na spodní liště je typ konce řádku a kódování
UNIX, ISO 8859-2
ovšem v souboru se někdy vyskytne nekonzistence
FOR x=1 TO 3
b=x
c=x
d=x
ÿ FOR
tedy na začátku řádku je místo slova END vidět y s dvěma tečkami, v Unicode U+00FF.
Ve velkých souborech to bývá i mimo obrazovku a v místech která jsem neměnil.
Po dalším uložení jsou v souboru nečitelné znaky.
Posted by: pspad | Date: 2015-12-18 17:11 | IP: IP Logged
V připojení k FTP v PSPadu je zaškrtnut binarní režim přenosu? Pokud ne, tak FTP server manipuluje se soubory.
Další věc. Kódování, které je na stavovém řádku PSPadu zobrazeno se použije v okamžiku ukládání souboru.
V tomto případě by to vadit nemělo, protože tam nejsou žádné znaky s diakritikou, takže je jedno jaké bude kódování, výsledek bude stejný.
Posted by: stanislav.mikusek | Date: 2016-02-02 10:25 | IP: IP Logged
Binární režim přenosu je zaškrtnut.
Chyba vzniká i když kódování je celou dobu neměnné - UNIX, ISO 8859-2.
ÿ (U+00FF) vzniká na řádku "END FOR", "END IF", nebo "ELSE".
za zkomoleným ÿ (U+00FF) dojde ke změně kódové stránky, asi na WIN1250, tedy změny š,Š a ž.
Stane se to patrně když kombinuju řádkový a sloupcový výběr do Clipboardu a UnDo (Ctrl-Z).
--
Stanislav Mikušek
Posted by: pspad | Date: 2016-02-02 11:14 | IP: IP Logged
Clipboardem by to byt nemelo. Tam se pracuje vzdy v unicode a pokud by doslo k chybnemu vlozeni ze schranky, bylo by to videt hned pri vlozeni.
Jestli se to spravne uklada a nacita lokalne, pak je problem v FTP komunikaci.
Co je to za FTP server?
PSpad soubory uklada vzdy pri otevreni a pred ulozenim na FTP do zalozniho FTP adresare. Ten je mozne definovat v nastaveni programu / Zaloha. Pokud je prazdny, pouzije se temp.
Zkuste si zkontrolovat, zda je soubor tam ulozeny v poradku.
Posted by: stanislav.mikusek | Date: 2016-02-05 14:40 | IP: IP Logged
Jde o UNIXový ftp server AIX 6.1
Na serverech nyní pracuji tak, že k ftp přenosům používám WinSCP a nastaveným editorem PsPad.
Problémy s kódováním přestaly.
Posted by: stanislav.mikusek | Date: 2017-01-19 12:22 | IP: IP Logged
Mám k tomu další poznatky.
K chybě dochází i v kombinaci s WinSCP.
Většinou jde o situaci, kdy při nebo bezprostředně po editaci v PsPadu pracuji s cílovým souborem na serveru - aniž bych ho měnil.
Vyplatilo se mi tedy vždy po uložení zdrojáku chvíli - pár sekund - počkat, než začnu kompilovat. Chyba se pak přestala vyskytovat.
Posted by: pspad | Date: 2017-01-19 12:50 | IP: IP Logged
Díky za poznatky. To znamená, že musí být aktivní FTP a soubor se současně ukládá na disk a následně na FTP.
Tohle jsem zatím vůbec nezkoumal, protože mě to nijak nenapadlo s tím spojovat.
Zkontrolujte si prosím, zda je v nastavení FTP zapnut binární režim. Pokud ne, tak FTP server s textem manipuluje, takže ať vyloučíme chybu i zde.
Posted by: khagaroth | Date: 2017-01-20 15:21 | IP: IP Logged
To vypadá zase na tuhle chybu.
Posted by: pspad | Date: 2017-01-20 15:39 | IP: IP Logged
khagaroth:To vypadá zase na tuhle chybu.
Ta chyba je s UTF-8, ne z ISO.
Takze jsme pokrocili dal - k chybe dochazi pri aktivnim FTP, kdy se soubor uklada primo na server.
Takze opravdu je nastaven binarni rezim prenosu v FTP klientovi v PSPadu?
Posted by: khagaroth | Date: 2017-01-20 16:20 | IP: IP Logged
Ta chyba byla sice hlášená s UTF-8, ale to podstatné je, že v obou případech se chyba objevuje když je v textu "END".
@stanislav zkus tyhle kombinace:
{tabulátor}{mezera}{mezera}EndIF -> ÿ{null}{mezera}E??IF
{tabulátor}EndIf -> ÿ{null}nd??
{tabulátor}EndVar -> ÿ{null}nd??r
Pokud se to bude chovat stejně, tak je to opravdu tahle chyba.
Edited 1 time(s). Last edit at 2017-01-20 16:21 by khagaroth.
Editor PSPad - freeware editor, © 2001 - 2025 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR