Skip to content

Commit 0db2a31

Browse files
authored
Replace chars when standard out can't be decoded
Fixes #2235
1 parent 66411f4 commit 0db2a31

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

nipype/interfaces/base.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,19 +1420,23 @@ def _process(drain=0):
14201420

14211421
if output == 'allatonce':
14221422
stdout, stderr = proc.communicate()
1423-
result['stdout'] = stdout.decode(default_encoding).split('\n')
1424-
result['stderr'] = stderr.decode(default_encoding).split('\n')
1423+
result['stdout'] = stdout.decode(
1424+
default_encoding, errors='replace').split('\n')
1425+
result['stderr'] = stderr.decode(
1426+
default_encoding, errors='replace').split('\n')
14251427

14261428
elif output.startswith('file'):
14271429
proc.wait()
14281430
if outfile is not None:
14291431
stdout.flush()
1430-
result['stdout'] = [line.decode(default_encoding).strip()
1431-
for line in open(outfile, 'rb').readlines()]
1432+
result['stdout'] = [
1433+
line.decode(default_encoding, errors='replace').strip()
1434+
for line in open(outfile, 'rb').readlines()]
14321435
if errfile is not None:
14331436
stderr.flush()
1434-
result['stderr'] = [line.decode(default_encoding).strip()
1435-
for line in open(errfile, 'rb').readlines()]
1437+
result['stderr'] = [
1438+
line.decode(default_encoding, errors='replace').strip()
1439+
for line in open(errfile, 'rb').readlines()]
14361440

14371441
if output == 'file':
14381442
result['merged'] = result['stdout']

0 commit comments

Comments
 (0)