diff options
Diffstat (limited to 'libmproxy/console')
-rw-r--r-- | libmproxy/console/common.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 57d4c994..e5bebf7f 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -284,8 +284,16 @@ def copy_flow(part, scope, flow, master, state): signals.status_message.send(message="No contents to copy.") return + # pyperclip calls encode('utf-8') on data to be copied without checking. + # if data are already encoded that way UnicodeDecodeError is thrown. + toclip = "" try: - pyperclip.copy(data) + toclip = data.decode('utf-8') + except (UnicodeDecodeError): + toclip = data + + try: + pyperclip.copy(toclip) except (RuntimeError, UnicodeDecodeError, AttributeError): def save(k): if k == "y": |