diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 704be55db..9f7d0da1f 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -2755,7 +2755,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): if not fileName: return try: - with open(fileName, "r") as f: + with open(fileName, "rb") as f: file_content = f.read() # type: Union[str, bytes] except (ValueError, IOError, os.error) as reason: self.show_critical(_("Electrum was unable to open your transaction file") + "\n" + str(reason), diff --git a/electrum/gui/qt/qrtextedit.py b/electrum/gui/qt/qrtextedit.py index 9cfc3e301..dfef17454 100644 --- a/electrum/gui/qt/qrtextedit.py +++ b/electrum/gui/qt/qrtextedit.py @@ -47,8 +47,13 @@ class ScanQRTextEdit(ButtonsTextEdit, MessageBoxMixin): if not fileName: return try: - with open(fileName, "r") as f: - data = f.read() + try: + with open(fileName, "r") as f: + data = f.read() + except UnicodeError as e: + with open(fileName, "rb") as f: + data = f.read() + data = data.hex() except BaseException as e: self.show_error(_('Error opening file') + ':\n' + repr(e)) else: