Używam prosty skrypt Pythona aby uzyskać wyniki rezerwacji na moim CID: simple.py
:Python: UnicodeEncodeError kiedy używam grep
data = {"minorRev":"current minorRev #","cid":"xxx","apiKey":"xxx","customerIpAddress":" ","creationDateStart":"03/31/2013","}
url = 'http://someservice/services/rs/'
req = requests.get(url,params=data)
print req
print req.text
print req.status_code
Teraz na wierszu poleceń, jeśli robię python simple.py
działa doskonale i drukuje req.text
zmienną
jednak gdy próbuję zrobić
python simple.py | grep pattern
mam
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 1314: ordinal not in range(128)
Patrz: http://stackoverflow.com/questions/2596714/why-does-python-print-unicode-characters -when-the-default-encoding-is-ascii –
przeczytać przez [this] (http://stackoverflow.com/questions/1473577/writing-unicode-strings-via-sys-stdout-in-python). Zasadniczo, podczas wyprowadzania wyniku, 'sys.stdout.encoding == None' – shx2