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")
?