From fa0e6aac26b2b3ac66eda345bb5685f4b73d4692 Mon Sep 17 00:00:00 2001 From: Vasiliy Horbachenko Date: Mon, 19 May 2014 18:40:48 +0300 Subject: [PATCH] if payload contains wrong utf-8, fallback to latin-1 encoding --- i3.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/i3.py b/i3.py index 48555d2..5a95eed 100644 --- a/i3.py +++ b/i3.py @@ -245,7 +245,11 @@ def unpack(self, data): msg_size = self.struct_header_size + msg_length # Message shouldn't be any longer than the data if data_size >= msg_size: - payload = data[self.struct_header_size:msg_size].decode('utf-8') + try: + payload = data[self.struct_header_size:msg_size].decode('utf-8') + except UnicodeDecodeError: + payload = data[self.struct_header_size:msg_size].decode('latin-1') + payload = json.loads(payload) self.buffer = data[msg_size:] return payload