Diky za nakopnuti. Bylo to opravdu tim, avsak mam s tim jeste potize.
Konkretne se syntaxi takoveho typu:
print u"data v konfiguračním souboru %s jsou ve špatném formátu
".encode("utf-8") %(self.path)
chybova hlaska (v nativnim pythonovskem skriptu, ne ve zmrazenem!!!):
Traceback (most recent call last):
File "run_BastControl_v1.py", line 183, in iniLoad
self.loadIniStatus=self.conf.read(self)
File "/home/vepro/vlrz/conf_BastlControl_v1.py", line 25, in read
print u"data v konfiguračním souboru %s jsou ve špatném formátu
".encode("utf-8") %(self.path)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 11:
ordinal not in range(128)
konstrukty toho typu (bez formatovaciho retezce %s):
print u"přidávám větev do databáze".encode("utf-8")
Funguji spravne
Petr Zlamal wrote:
Pratele,
Ve skriptu pouzivam prikaz print v takovemto formatu:
print unicode("konfigurační soubor: ","utf-8")
Skript funguje tak jak ma. Problem nastane az s binarkou, kterou
vytvorim pomoco cx_freeze. Po spusteni binarky se vypise chyba:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u010d' in
position 9: ordinal not in range(128)
Vi nekdo jak odladit tento problem, krom vyhozeni ceskych znaku:))
Vy sice dekodujete z UTF-8 do unicode, ale vystupni enkodovani nechavate
anarchii. Prostredi, ve kterem nefreeznuty skript poustite, zrejme
pouziva takove vychozi kodovani, ktere je kompatibilni a "nejak" se to
prelozi.
Kazdopadne byste mel osetrit vystup: Tedy za znalosti kodovani, ktere
zvlada zobrazit terminal, na kterem skript bezi upravte skript takto:
print unicode("konfigurační soubor: ","utf-8").encode("utf-8")
pokud mate na zacatku skriptu definovane kodovani zdrojaku, melo by
stacit toto:
print u"konfigurační soubor".encode("utf-8")
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python