fix: encode str input when text=True is intercepted by header wrapper

This commit is contained in:
Liang Jiaqing
2026-03-29 15:15:35 +08:00
parent 53c492b682
commit 52151853b3

View File

@@ -7,7 +7,10 @@ def _d(b):
try: return b.decode()
except: return b.decode('gbk', 'replace')
def _run(*a, **k):
t = k.pop('text', 0) | k.pop('universal_newlines', 0); r = _r(*a, **k)
t = k.pop('text', 0) | k.pop('universal_newlines', 0)
if t and isinstance(k.get('input'), str):
k['input'] = k['input'].encode()
r = _r(*a, **k)
if t:
if r.stdout is not None: r.stdout = _d(r.stdout)
if r.stderr is not None: r.stderr = _d(r.stderr)