diff -up system-config-printer-1.4.1/newprinter.py.utf8-962207 system-config-printer-1.4.1/newprinter.py --- system-config-printer-1.4.1/newprinter.py.utf8-962207 2013-05-09 12:10:43.000000000 +0100 +++ system-config-printer-1.4.1/newprinter.py 2013-05-21 17:20:20.852036184 +0100 @@ -1632,7 +1632,7 @@ class NewPrinterGUI(GtkGUI): def on_entNPName_changed(self, widget): # restrict - text = unicode (widget.get_text()) + text = unicode (widget.get_text(), locale.getpreferredencoding ()) new_text = text new_text = new_text.replace("/", "") new_text = new_text.replace("#", "") @@ -2516,7 +2516,7 @@ class NewPrinterGUI(GtkGUI): allowed_chars = unicode (allowed_chars, locale.getpreferredencoding()) except UnicodeDecodeError: allowed_chars = unicode (allowed_chars) - origtext = unicode (entry.get_text()) + origtext = unicode (entry.get_text(), locale.getpreferredencoding ()) new_text = origtext for char in origtext: if char not in allowed_chars: @@ -3881,9 +3881,10 @@ class NewPrinterGUI(GtkGUI): self.dec_spinner_task () if self.dialog_mode in ("class", "printer", "printer_with_uri"): - name = unicode (self.entNPName.get_text()) - location = unicode (self.entNPLocation.get_text()) - info = unicode (self.entNPDescription.get_text()) + enc = locale.getpreferredencoding () + name = unicode (self.entNPName.get_text(), enc) + location = unicode (self.entNPLocation.get_text(), enc) + info = unicode (self.entNPDescription.get_text(), enc) else: name = self._name diff -up system-config-printer-1.4.1/printerproperties.py.utf8-962207 system-config-printer-1.4.1/printerproperties.py --- system-config-printer-1.4.1/printerproperties.py.utf8-962207 2013-05-09 12:10:45.000000000 +0100 +++ system-config-printer-1.4.1/printerproperties.py 2013-05-21 17:20:20.853036185 +0100 @@ -683,6 +683,9 @@ class PrinterPropertiesDialog(GtkGUI): old_value = old_values[widget] + if type (old_value) == unicode: + old_value = old_value.encode (locale.getpreferredencoding ()) + if old_value == value: self.changed.discard(widget) else: @@ -1034,9 +1037,10 @@ class PrinterPropertiesDialog(GtkGUI): for member in old_members: self.cups.deletePrinterFromClass(member, name) - location = self.entPLocation.get_text() - info = self.entPDescription.get_text() - device_uri = self.entPDevice.get_text() + enc = locale.getpreferredencoding () + location = self.entPLocation.get_text().decode (enc) + info = self.entPDescription.get_text().decode (enc) + device_uri = self.entPDevice.get_text().decode (enc) enabled = self.chkPEnabled.get_active() accepting = self.chkPAccepting.get_active()