🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
3 messages
3 total messages Started by ak3031884 Tue, 23 Jun 2009 18:08
pygtk polskie znaki
#26286
Author: ak3031884
Date: Tue, 23 Jun 2009 18:08
63 lines
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
#26287
Author: MAcks
Date: Tue, 23 Jun 2009 19:19
15 lines
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
#26288
Author: ak3031884
Date: Wed, 24 Jun 2009 16:29
24 lines
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