diff --git a/scapy/tools/UTscapy.py b/scapy/tools/UTscapy.py
index 592cf98c6ee418f26bd438b9b619380c73fb1e7d..660eb961b83995fe8f512315467ca588c2ff279d 100755
--- a/scapy/tools/UTscapy.py
+++ b/scapy/tools/UTscapy.py
@@ -843,7 +843,8 @@ def main(argv):
     if FORMAT == Format.HTML:
         glob_output = pack_html_campaigns(runned_campaigns, glob_output, LOCAL, glob_title)
     
-    OUTPUTFILE.write(glob_output.encode("utf8", "ignore"))
+    OUTPUTFILE.write(glob_output.encode("utf8", "ignore")
+                     if 'b' in OUTPUTFILE.mode else glob_output)
     OUTPUTFILE.close()
 
     # Return state