在 Python 中設定管道輸出的編碼
管道 stdout 時,Python 解釋器遇到編碼問題,導致 UnicodeEncodeError。當程式嘗試在未指定正確編碼的情況下列印 Unicode 字元時,就會發生這種情況。
最佳實踐:在管道傳輸時對輸出進行編碼
解決方案是在先前手動對輸出進行編碼管道。經驗法則是始終在內部使用 Unicode,解碼輸入並編碼輸出。例如:
print(u"åäö".encode('utf-8'))
在管道序列中解碼、操作和編碼
一個實際例子是在ISO-8859-1 和ISO-8859-1 之間進行轉換的Python 程式。 UTF-8,大寫text:
import sys for line in sys.stdin: # Decode received input line = line.decode('iso8859-1') # Manipulate Unicode internally line = line.upper() # Encode output line = line.encode('utf-8') sys.stdout.write(line)
避免設定預設編碼
不建議修改 site.py 或硬編碼預設編碼。這可能會損害依賴 ASCII 預設值的其他模組。在管道傳輸時明確編碼輸出以確保獲得所需的結果至關重要。
以上是在 Python 中管道輸出時如何處理 UnicodeEncodeError?的詳細內容。更多資訊請關注PHP中文網其他相關文章!