always decode input strings to unicode
assume that encoding is UTF-8 if getpreferred- encoding failed
This commit is contained in:
parent
a9e25ce434
commit
def6fbe56d
1 changed files with 7 additions and 9 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue