You are here: PSPad forum > České diskuzní fórum > 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
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)
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
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