Thread View: pl.comp.lang.python
3 messages
3 total messages
Started by ak3031884
Tue, 23 Jun 2009 18:08
pygtk polskie znaki
Author: ak3031884
Date: Tue, 23 Jun 2009 18:08
Date: Tue, 23 Jun 2009 18:08
63 lines
3461 bytes
3461 bytes
Witam,
próbuje poradzić sobie z polskimi znakami w programie.
W całej aplikacji działa .decode('cp1250').encode('utf-8') lub .decode
(sys.getfilesystemencoding()).encode('utf-8')
lecz w oknie zapisu pliku to nie działa.
W polu tekstowym zapisu pliku mogę wpisać polskie znaki lecz jak
zapisze plik nazwa przypomina raczej chiński alfabet.
Może ktoś ma jakiś pomysł bo mnie już brakuje.
def save_as(self, obj):
dialog_save = gtk.FileChooserDialog("Save as..", None,
gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK))
dialog_save.set_default_response(gtk.RESPONSE_OK)
dialog_save.set_current_name("*.txt")
filter = gtk.FileFilter()
filter.set_name("All files")
filter.add_pattern("*")
dialog_save.add_filter(filter)
filter = gtk.FileFilter()
filter.set_name("Text")
filter.add_pattern("*.txt")
dialog_save.add_filter(filter)
response = dialog_save.run()
if response == gtk.RESPONSE_OK:
self.nazwa = dialog_save.get_filename().decode
(sys.getfilesystemencoding()).encode('utf-8')
# różne sposoby wykorzystane -- nie działa
#self.nazwa = unicode(self.nazwa, 'cp1250').encode('utf-8')
#self.nazwa = self.nazwa.decode(sys.getfilesystemencoding())
# self.nazwa = self.nazwa.encode('utf-8')
start, end = self.wigiet_bazowy_buffer.get_bounds()
chars = self.wigiet_bazowy_buffer.get_slice(start, end,
False)
if not os.path.exists("%s" % self.nazwa):
fill = file(u"%s" % self.nazwa,"w")
fill.write(chars.encode('utf-8'))
else:
dia = gtk.MessageDialog(parent=None,flags=0, type =
gtk.MESSAGE_QUESTION, buttons = gtk.BUTTONS_YES_NO)
dia.set_title("CRS")
#dia.set_image(connect)#proba nastawienia takich
samych obrazkĂłw w nazwie
dia.set_markup(u"Plik o tej nazwie istnieje. Czy
chcesz go zamienić?")
result = dia.run()
if result == gtk.RESPONSE_YES:
fill = file(u"%s" % self.nazwa,"w")
fill.write(chars.encode('utf-8'))
dia.destroy()
else:
dia.destroy()
elif response == gtk.RESPONSE_CANCEL:
pass
dialog_save.destroy()
return
Pozdrawiam.
Re: pygtk polskie znaki
Author: MAcks
Date: Tue, 23 Jun 2009 19:19
Date: Tue, 23 Jun 2009 19:19
15 lines
1539 bytes
1539 bytes
W dniu 23.06.2009 20:08, ak3031884 pisze:
> próbuje poradzić sobie z polskimi znakami w programie.
> W całej aplikacji działa .decode('cp1250').encode('utf-8') lub .decode
> (sys.getfilesystemencoding()).encode('utf-8')
> lecz w oknie zapisu pliku to nie działa.
> W polu tekstowym zapisu pliku mogę wpisać polskie znaki lecz jak
> zapisze plik nazwa przypomina raczej chiński alfabet.
> Może ktoś ma jakiś pomysł bo mnie już brakuje.
Prawdopodobnie podajesz UTF-8 tam, gdzie oczekiwany jest obiekt unikodowy:
http://enjoydoingitwrong.wordpress.com/2009/06/22/unicode-is-not-utf/
M.
Re: pygtk polskie znaki
Author: ak3031884
Date: Wed, 24 Jun 2009 16:29
Date: Wed, 24 Jun 2009 16:29
24 lines
2063 bytes
2063 bytes
On 23 Cze, 21:19, MAcks <n...@spamuj.mnie> wrote:
> W dniu 23.06.2009 20:08, ak3031884 pisze:
>
> > próbuje poradzić sobie z polskimi znakami w programie.
> > W całej aplikacji działa .decode('cp1250').encode('utf-8') lub .decode
> > (sys.getfilesystemencoding()).encode('utf-8')
> > lecz w oknie zapisu pliku to nie działa.
> > W polu tekstowym zapisu pliku mogę wpisać polskie znaki lecz jak
> > zapisze plik nazwa przypomina raczej chiński alfabet.
> > Może ktoś ma jakiś pomysł bo mnie już brakuje.
>
> Prawdopodobnie podajesz UTF-8 tam, gdzie oczekiwany jest obiekt unikodowy:
>
> http://enjoydoingitwrong.wordpress.com/2009/06/22/unicode-is-not-utf/
>
> M.
przeczytałem artykuł pokombinowałem trochę i wyszło że
nie trzeba tego wogóle kodować wystarczy samo:
self.nazwa = dialog_save.get_filename()
i działa
Dzięki pozdrawiam.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads