@@ -31,16 +31,19 @@ def init_streams(android_log_write, stdout_prio, stderr_prio):
3131 logcat = Logcat (android_log_write )
3232
3333 sys .stdout = TextLogStream (
34- stdout_prio , "python.stdout" , sys .stdout .fileno (),
35- errors = sys .stdout .errors )
34+ stdout_prio , "python.stdout" , sys .stdout .fileno ())
3635 sys .stderr = TextLogStream (
37- stderr_prio , "python.stderr" , sys .stderr .fileno (),
38- errors = sys .stderr .errors )
36+ stderr_prio , "python.stderr" , sys .stderr .fileno ())
3937
4038
4139class TextLogStream (io .TextIOWrapper ):
4240 def __init__ (self , prio , tag , fileno = None , ** kwargs ):
41+ # The default is surrogateescape for stdout and backslashreplace for
42+ # stderr, but in the context of an Android log, readability is more
43+ # important than reversibility.
4344 kwargs .setdefault ("encoding" , "UTF-8" )
45+ kwargs .setdefault ("errors" , "backslashreplace" )
46+
4447 super ().__init__ (BinaryLogStream (prio , tag , fileno ), ** kwargs )
4548 self ._lock = RLock ()
4649 self ._pending_bytes = []
0 commit comments