diff options
-rw-r--r-- | keymanager/changes/bug-4427_default-encoding-to-utf8 | 2 | ||||
-rw-r--r-- | keymanager/src/leap/keymanager/openpgp.py | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/keymanager/changes/bug-4427_default-encoding-to-utf8 b/keymanager/changes/bug-4427_default-encoding-to-utf8 new file mode 100644 index 0000000..3f7d671 --- /dev/null +++ b/keymanager/changes/bug-4427_default-encoding-to-utf8 @@ -0,0 +1,2 @@ + o Default encoding to 'utf-8' in case of system encodings not set. Closes + #4427. diff --git a/keymanager/src/leap/keymanager/openpgp.py b/keymanager/src/leap/keymanager/openpgp.py index a4dc1b8..1670e1c 100644 --- a/keymanager/src/leap/keymanager/openpgp.py +++ b/keymanager/src/leap/keymanager/openpgp.py @@ -21,12 +21,14 @@ Infrastructure for using OpenPGP keys in Key Manager. """ +import locale import logging import os import re import shutil +import sys import tempfile -import locale + from contextlib import closing from gnupg import GPG @@ -516,6 +518,10 @@ class OpenPGPScheme(EncryptionScheme): # https://github.com/isislovecruft/python-gnupg/\ # blob/master/gnupg/_meta.py#L121 encoding = locale.getpreferredencoding() + if encoding is None: + encoding = sys.stdin.encoding + if encoding is None: + encoding = 'utf-8' return result.data.decode(encoding, 'replace') def is_encrypted(self, data): |