A podruhe potrebujem ukladat data do suboru v UTF-8 ale nejako sa mi to nedari, proste
Traceback (most recent call last):
File "netdirector.py", line 41, in uloz
fh.write(sprava)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 81: ordinal not in range(128)
Tu je cely zdrojak keby ste ho nahodou potrebovali vidiet ako to funguje:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
import sys, os, time
subor=os.path.exists('nastavenia') # vypise ci fajl nastavenia existuje, teda True - pravda alebo False - neexistuje
spusti=os.system('./skuska')
print "Vitaj! Ja som Net Director, spravca tvojej internetovej kaviarne"
if subor==True: # ak existuje vyhod cele okno s programom
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
MainWindow.setWindowIcon(QtGui.QIcon('ikona.png'))
MainWindow.setWindowTitle("Net Director")
MainWidget=QtGui.QWidget(MainWindow)
MainWindow.setCentralWidget(MainWidget)
layout=QtGui.QGridLayout(MainWidget)
headerLabel=QtGui.QLabel(u"<h1>Net Director - Správca siete</h1>", MainWidget)
headerLabel.setAlignment(QtCore.Qt.AlignHCenter)
layout.addWidget(headerLabel,0,0,1,2, QtCore.Qt.AlignHCenter)
MainWindow.showMaximized()
sys.exit(app.exec_())
else: # ak neexistuje nahod tam okienko s nastaveniami
def uloz(): # funkcia uloz, platna iba v pripade ze subor==False
kaviaren_ul=unicode(kaviaren.text())
meno_ul=unicode(meno.text())
priezvisko_ul=unicode(priezvisko.text())
pocet_ul=unicode(pocet.text())
sprava='#!/usr/bin/env python \n \
# -*- coding: utf-8 -*- \n \
%s \n \
%s \n \
%s \n \
%s \n' % (kaviaren_ul, meno_ul, priezvisko_ul, pocet_ul)
vytvor=file('nastavenia','w') # vytvori sa subor nastavenia
fh=open("nastavenia","w") # otvaram, ukladam a zatvaram subor nastavenia
fh.write(sprava)
fh.close()
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
MainWindow.setWindowIcon(QtGui.QIcon('ikona.png'))
MainWindow.setWindowTitle("Nastavenia")
MainWidget=QtGui.QWidget(MainWindow)
MainWindow.setCentralWidget(MainWidget)
layout=QtGui.QGridLayout(MainWidget)
logo=QtGui.QLabel(MainWidget)
logo.setPixmap(QtGui.QPixmap("nastavenia_logo.png"))
meno=QtGui.QLineEdit(MainWidget)
priezvisko=QtGui.QLineEdit(MainWidget)
pocet=QtGui.QLineEdit(MainWidget)
kaviaren=QtGui.QLineEdit(MainWidget)
menotext=QtGui.QLabel(u"Vaše meno:", MainWidget)
priezviskotext=QtGui.QLabel(u"Vaše priezvisko:", MainWidget)
pocettext=QtGui.QLabel(u"Počet počítačov:", MainWidget)
kaviarentext=QtGui.QLabel(u"Názov vašej kaviarne:", MainWidget)
posli=QtGui.QPushButton(u"Uložiť", MainWidget)
zavri=QtGui.QPushButton(u"Zavrieť", MainWidget)
layout.addWidget(logo,0,0,1,2, QtCore.Qt.AlignHCenter)
layout.addWidget(meno,1,1)
layout.addWidget(menotext,1,0)
layout.addWidget(priezvisko,2,1)
layout.addWidget(priezviskotext,2,0)
layout.addWidget(pocet,3,1)
layout.addWidget(pocettext,3,0)
layout.addWidget(kaviaren,4,1)
layout.addWidget(kaviarentext,4,0)
layout.addWidget(posli,5,1)
layout.addWidget(zavri,5,0)
app.connect(zavri,QtCore.SIGNAL("clicked()"), MainWindow.close)
app.connect(posli,QtCore.SIGNAL("clicked()"), uloz)
import info
print info.info[0]
MainWindow.show()
sys.exit(app.exec_()),
Si mozete vsimnut v tej funkcii uloz ze som skusal vytvorit aj s kodovanim vo vnutri ten subor, ale nedari sa mi, proste to napise ze mam tam znaky ktore ascii nepovoluje.Dakujem

fh = open( "nastavenia", "w", encoding="utf-8" ) fh.write(sprava.encode('utf-8'))Možno bude stačiť jedno z toho.
dakujem velmi velmi pekne !!! :)