Tôi đang sử dụng một kịch bản python đơn giản để có được kết quả đặt phòng cho CID của tôi: simple.py
:Python: UnicodeEncodeError khi tôi sử dụng 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
Bây giờ trên cửa sổ lệnh nếu tôi làm python simple.py
nó chạy một cách hoàn hảo và in các req.text
biến
Tuy nhiên khi tôi cố gắng làm
python simple.py | grep pattern
tôi nhận được
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 1314: ordinal not in range(128)
Xem: http://stackoverflow.com/questions/2596714/why-does-python-print-unicode-characters -when-the-default-encoding-is-ascii –
đọc qua [this] (http://stackoverflow.com/questions/1473577/writing-unicode-strings-via-sys-stdout-in-python). Về cơ bản, khi đường ống đầu ra, 'sys.stdout.encoding == None' – shx2