You are here: PSPad forum > České diskuzní fórum > Re: kódování výstupu kompilátoru do logu

Re: kódování výstupu kompilátoru do logu

#1 kódování výstupu kompilátoru do logu

Posted by: vbr | Date: 2021-03-16 23:05 | IP: IP Logged

Zdravím,
rád bych se zeptal ohledně kódování pro výstup z externího programu - nebo "kompilátoru" do logu - nejsem si jist, jestli jde o špatné nastavení na mé straně nebo případně chybu.

V tomto případě jde o výstup pythonu, projevuje se to stejně při vyvolání kompilátoru nebo z odkazů nástrojového panelu.
Jde o Win 7, python 3.8, PSPad 5.0.6 (571)
Problémy vznikají se "složitějšími" znaky, např. latinka s diakritikou nebo jiné abecedy aj.

Testovací kód je např. jen výpis textu:
print("abc_ž_ä_cba")
print("abc_φ_cba")

Podoba kódování výstupu ze strany pythonu záleží na parametrech - implicitně se používá (na českých windows 7) win1250. - s tímto vše funguje na podporovaných znacích, ovšem při pokusu vypsat nepodporovaný znak dojde k chybě kódování a zastavení kompilace:

abc_ž_ä_cba
Traceback (most recent call last):
File "C:\install\test_py_output_console.py", line 5, in <module>
print("abc_\u03c6_cba")
File "C:\Programy\Python38_64\lib\encodings\cp1250.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u03c6' in position 4: character maps to <undefined>

V parametru spuštění "kompilátoru" jde pro python nastavit výstup v utf-8 (parametr -Xutf8 "%File%" )
(s tímto nastavením funguje kódování výstupu do logu v jiném editoru správně).

V PSPadu ale asi není utf-8 na tomto rozhraní správně dekódováno; výstup je:
abc_ž_ä_cba
abc_φ_cba

(výhodou je, že ze strany pythonu nedochází k chybě kódování; problém v zobrazení výstupu pak ale mají všechny znaky mimo základní latinku, tj. včetně středoevropských.)

Je prosím nějak možné nastavit kódování výstupu programu tak, aby je log převzal a zobrazil správně, případně bylo by to možné doplnit?

Samotný log příslušné znaky podporuje - např. výpis pomocí skriptování PSPadu funguje:
logAddLine("abc_ž_ä_φ_cba");

vypisuje očekávané:
abc_ž_ä_φ_cba

Moc děkuju a zdravím,
vbr

Options: Reply | Quote | Up ^


#2 Re: kódování výstupu kompilátoru do logu

Posted by: pspad | Date: 2021-03-17 05:39 | IP: IP Logged

Neco s tim provedu.
Defaultne se bere OEM kodovani (vystup do konzole)
Zrejme pridam nejakou volbu v nastavení kompilatoru (ANSI/OEM/UTF-8)

Options: Reply | Quote | Up ^


#3 Re: kódování výstupu kompilátoru do logu

Posted by: vbr | Date: 2021-03-17 09:12 | IP: IP Logged

Moc dekuju,
to by bylo vyborne. Donedavna takto, jen s defaultnim windowsim kodovanim fungoval i vystup pythonu do konsole, takze jsem to bral jako dlouhodobe nevyhnutelne omezeni. Pokud to pujde osetrit primym nastavenim (asi v nastaveni kompilatoru pri zvyrazovaci, v nastrojich na panelu ?), bylo by to skvele.

Dekuju a zdravim,
vbr

Options: Reply | Quote | Up ^






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