diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index ec49b95..a4ebff4 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -376,6 +376,7 @@
         elif o in ('-j', '--multiprocess'):
             use_mp = int(a)
         elif o == '--slaveargs':
+            replace_stdout()
             args, kwargs = json.loads(a)
             try:
                 result = runtest(*args, **kwargs)
@@ -514,6 +515,8 @@
     else:
         tests = iter(selected)
 
+    replace_stdout()
+
     if use_mp:
         try:
             from threading import Thread
@@ -727,6 +730,14 @@
             tests.append(modname)
     return stdtests + sorted(tests)
 
+def replace_stdout():
+    """Set stdout encoder error handler to backslashreplace (as stderr error
+    handler) to avoid UnicodeEncodeError when printing a traceback"""
+    stdout = sys.stdout
+    sys.stdout = open(stdout.fileno(), 'w',
+        encoding=stdout.encoding,
+        errors="backslashreplace")
+
 def runtest(test, verbose, quiet,
             testdir=None, huntrleaks=False, debug=False, use_resources=None):
     """Run a single test.
@@ -939,8 +950,8 @@
         print("test", test, "crashed --", str(type) + ":", value)
         sys.stdout.flush()
         if verbose or debug:
-            traceback.print_exc(file=sys.stderr)
-            sys.stderr.flush()
+            traceback.print_exc(file=sys.stdout)
+            sys.stdout.flush()
         return FAILED, test_time
     else:
         if refleak:
diff --git a/Lib/test/support.py b/Lib/test/support.py
index 3c4d5d6..4ea6c05 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -1020,7 +1020,7 @@
 def _run_suite(suite):
     """Run tests from a unittest.TestSuite-derived class."""
     if verbose:
-        runner = unittest.TextTestRunner(sys.stderr, verbosity=2)
+        runner = unittest.TextTestRunner(sys.stdout, verbosity=2)
     else:
         runner = BasicTestRunner()
 
diff --git a/Misc/NEWS b/Misc/NEWS
index e30315a..d822584 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1201,8 +1201,8 @@
 Tests
 -----
 
-- Issue #8533: Write tracebacks and failed tests to sys.stderr instead of
-  sys.stdout to avoid UnicodeEncodeError (use backslashreplace error handler)
+- Issue #8533: regrtest uses backslashreplace error handler for stdout to avoid
+  UnicodeEncodeError (write non-ASCII character to stdout using ASCII encoding)
 
 - Issue #8576: Remove use of find_unused_port() in test_smtplib and
   test_multiprocessing.  Patch by Paul Moore.
