Set errors=ignore in the decode method, to avoid utf-8 codec errors on filenames with non-ascii characters
This commit is contained in:
parent
9cce146868
commit
c74cc3802b
@ -199,7 +199,7 @@ def html_table(cur,callback=None):
|
|||||||
if iso is None:
|
if iso is None:
|
||||||
return None
|
return None
|
||||||
elif isinstance(iso, str):
|
elif isinstance(iso, str):
|
||||||
return iso.decode('iso8859')
|
return iso #.decode()
|
||||||
else:
|
else:
|
||||||
return iso
|
return iso
|
||||||
|
|
||||||
@ -246,14 +246,14 @@ def monitor_stdout(aprocess, onoutputdata,context):
|
|||||||
# Reads one line from stdout
|
# Reads one line from stdout
|
||||||
if aprocess.stdout in rlist:
|
if aprocess.stdout in rlist:
|
||||||
data = os.read(aprocess.stdout.fileno(), 1)
|
data = os.read(aprocess.stdout.fileno(), 1)
|
||||||
data = data.decode('utf-8')
|
data = data.decode(errors='ignore')
|
||||||
if data == "":
|
if data == "":
|
||||||
aprocess.stdout.close()
|
aprocess.stdout.close()
|
||||||
read_set.remove(aprocess.stdout)
|
read_set.remove(aprocess.stdout)
|
||||||
while data and not data in ('\n','\r'):
|
while data and not data in ('\n','\r'):
|
||||||
line += data
|
line += data
|
||||||
data = os.read(aprocess.stdout.fileno(), 1)
|
data = os.read(aprocess.stdout.fileno(), 1)
|
||||||
data = data.decode('utf-8')
|
data = data.decode(errors='ignore')
|
||||||
if line or data in ('\n','\r'):
|
if line or data in ('\n','\r'):
|
||||||
stdout.append(line)
|
stdout.append(line)
|
||||||
if onoutputdata:
|
if onoutputdata:
|
||||||
@ -263,14 +263,14 @@ def monitor_stdout(aprocess, onoutputdata,context):
|
|||||||
# Reads one line from stderr
|
# Reads one line from stderr
|
||||||
if aprocess.stderr in rlist:
|
if aprocess.stderr in rlist:
|
||||||
data = os.read(aprocess.stderr.fileno(), 1)
|
data = os.read(aprocess.stderr.fileno(), 1)
|
||||||
data = data.decode('utf-8')
|
data = data.decode(errors='ignore')
|
||||||
if data == "":
|
if data == "":
|
||||||
aprocess.stderr.close()
|
aprocess.stderr.close()
|
||||||
read_set.remove(aprocess.stderr)
|
read_set.remove(aprocess.stderr)
|
||||||
while data and not data in ('\n','\r'):
|
while data and not data in ('\n','\r'):
|
||||||
line += data
|
line += data
|
||||||
data = os.read(aprocess.stderr.fileno(), 1)
|
data = os.read(aprocess.stderr.fileno(), 1)
|
||||||
data = data.decode('utf-8')
|
data = data.decode(errors='ignore')
|
||||||
if line or data in ('\n','\r'):
|
if line or data in ('\n','\r'):
|
||||||
stdout.append(line)
|
stdout.append(line)
|
||||||
if onoutputdata:
|
if onoutputdata:
|
||||||
@ -498,7 +498,7 @@ def ssh_exec(command,ssh=None,server_name='',remote_user='',private_key='',ssh_p
|
|||||||
chan.exec_command(command)
|
chan.exec_command(command)
|
||||||
stdout.flush()
|
stdout.flush()
|
||||||
output_base = stdout.read()
|
output_base = stdout.read()
|
||||||
output = output_base.decode(encoding='UTF-8').replace("'","")
|
output = output_base.decode(errors='ignore').replace("'","")
|
||||||
exit_code = chan.recv_exit_status()
|
exit_code = chan.recv_exit_status()
|
||||||
return (exit_code,output)
|
return (exit_code,output)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user