aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/console/common.py10
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":