always decode input strings to unicode

assume that encoding is UTF-8 if getpreferred-
encoding failed
This commit is contained in:
Dimitur Kirov 2006-03-13 18:20:08 +00:00
parent a9e25ce434
commit def6fbe56d

View file

@ -42,8 +42,11 @@ from common import i18n
_ = i18n._ _ = i18n._
i18n.init() i18n.init()
try:
PREFERRED_ENCODING = locale.getpreferredencoding() PREFERRED_ENCODING = locale.getpreferredencoding()
except:
sys.exc_clear()
PREFERRED_ENCODING = 'UTF-8'
def send_error(error_message): def send_error(error_message):
'''Writes error message to stderr and exits''' '''Writes error message to stderr and exits'''
@ -411,16 +414,11 @@ class GajimRemote:
def call_remote_method(self): def call_remote_method(self):
''' calls self.method with arguments from sys.argv[2:] ''' ''' calls self.method with arguments from sys.argv[2:] '''
args = sys.argv[2:] args = sys.argv[2:]
if _version[1] <= 50:
# make console arguments unicode
args = [i.decode(PREFERRED_ENCODING) for i in sys.argv[2:]] args = [i.decode(PREFERRED_ENCODING) for i in sys.argv[2:]]
if _version[1] >= 41: if _version[1] >= 41:
args = [dbus.String(i) for i in args] args = [dbus.String(i) for i in args]
else: else:
try: args = [i.encode('UTF-8') for i in sys.argv[2:]]
args = [i.encode('utf-8') for i in args]
except:
pass
try: try:
res = self.method(*args) res = self.method(*args)
return res return res