diff --git a/gramps/gen/utils/grampslocale.py b/gramps/gen/utils/grampslocale.py index cf9a2f1fa..b82b08e3c 100644 --- a/gramps/gen/utils/grampslocale.py +++ b/gramps/gen/utils/grampslocale.py @@ -862,12 +862,12 @@ class GrampsLocale(object): #ICU can digest strings and unicode return self.collator.getCollationKey(string).getByteArray() else: + if sys.version_info[0] < 3 and isinstance(string, unicode): + string = string.encode("utf-8", "replace") + if sys.version_info[0] >= 3 and isinstance(string, bytes): + string = string.decode("utf-8", "replace") try: - if sys.version_info[0] < 3 and isinstance(string, unicode): - key = locale.strxfrm(string.encode("utf-8", "replace")) - else: - key = locale.strxfrm(string) - + key = locale.strxfrm(string) except Exception as err: LOG.warn("Failed to obtain key for %s because %s", self.collation, str(err)) diff --git a/gramps/gui/views/treemodels/treebasemodel.py b/gramps/gui/views/treemodels/treebasemodel.py index 61181f073..0ff3a31a7 100644 --- a/gramps/gui/views/treemodels/treebasemodel.py +++ b/gramps/gui/views/treemodels/treebasemodel.py @@ -90,10 +90,10 @@ class Node(object): #sortkey must be localized sort, so self.sortkey = glocale.sort_key(sortkey) if not self.sortkey: - self.sortkey = b'' + self.sortkey = glocale.sort_key('') else: self.name = '' - self.sortkey = b'' + self.sortkey = glocale.sort_key('') self.ref = ref self.handle = handle self.secondary = secondary