fix output handling for subprocesses with multi-byte chars

When using a german locale, program output may contain multi-byte chars such as "Umlaute". '' reads in only a single byte, triggering an exception when trying to decode that single byte.

By wrapping it into an TextIOWrapper, the text is read in char-by-char instead.

Merge request reports