के लिए पायथन एन्कोडिंग मैं पाइथन 2.6 से पाइथन के subprocess
मॉड्यूल से pipe.communicate
पर कॉल कर रहा हूं। मैं इस कोड से निम्न त्रुटि मिलती है:pipe.communicate
from subprocess import Popen
pipe = Popen(cwd)
pipe.communicate(data)
एक मनमाना cwd
के लिए, और जहां data
कि यूनिकोड (विशेष रूप से 0xE9) शामिल हैं:
Exec. exception: 'ascii' codec can't encode character u'\xe9' in position 507: ordinal not in range(128)
Traceback (most recent call last):
... stdout, stderr = pipe.communicate(data)
File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
line 671, in communicate
return self._communicate(input)
File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
line 1177, in _communicate
bytes_written = os.write(self.stdin.fileno(), chunk)
यह क्या हो रहा है, मुझे लगता है, क्योंकि pipe.communicate()
उम्मीद है ASCII एन्कोडेड स्ट्रिंग, लेकिन data
यूनिकोड है।
क्या यह समस्या मुझे सामना कर रही है, और मैं यूनिकोड को pipe.communicate()
पर पास करने का एक तरीका रखता हूं?
पढ़ने के लिए धन्यवाद!
ब्रायन
"यूनिकोड" में आपका क्या मतलब है? विशेष रूप से, 0xE9, स्वयं द्वारा, किसी भी सामान्य एन्कोडिंग में मान्य यूनिकोड कोड बिंदु नहीं है। – tripleee