เขียนไปยังไฟล์ UTF-8 ใน Python
codecs.open functionฉันสับสนจริงๆด้วย เมื่อฉัน: file = codecs.open("temp", "w", "utf-8") file.write(codecs.BOM_UTF8) file.close() มันทำให้ฉันมีข้อผิดพลาด UnicodeDecodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ 0xef ในตำแหน่ง 0: ลำดับไม่อยู่ในช่วง (128) ถ้าฉันทำ: file = open("temp", "w") file.write(codecs.BOM_UTF8) file.close() มันใช้งานได้ดี คำถามคือทำไมวิธีแรกล้มเหลว และฉันจะแทรก bom ได้อย่างไร? หากวิธีที่สองเป็นวิธีที่ถูกต้องในการทำสิ่งที่ใช้codecs.open(filename, "w", "utf-8")?