Don't try to convert str to Unicode anymore.
diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py
index 4c07c03..0e8fd6d 100644
--- a/Lib/idlelib/OutputWindow.py
+++ b/Lib/idlelib/OutputWindow.py
@@ -35,16 +35,7 @@
     # Act as output file
 
     def write(self, s, tags=(), mark="insert"):
-        # Tk assumes that byte strings are Latin-1;
-        # we assume that they are in the locale's encoding
-        if isinstance(s, str):
-            try:
-                s = str(s, IOBinding.encoding)
-            except TypeError:
-                raise
-            except UnicodeError:
-                # some other encoding; let Tcl deal with it
-                pass
+        assert isinstance(s, str)
         self.text.insert(mark, s, tags)
         self.text.see(mark)
         self.text.update()