Estou realmente confuso com o codecs.open function
. Quando eu faço:
file = codecs.open("temp", "w", "utf-8")
file.write(codecs.BOM_UTF8)
file.close()
Isso me dá o erro
UnicodeDecodeError: o codec 'ascii' não pode decodificar o byte 0xef na posição 0: ordinal fora do intervalo (128)
Se eu fizer:
file = open("temp", "w")
file.write(codecs.BOM_UTF8)
file.close()
Funciona bem.
A pergunta é por que o primeiro método falha? E como insiro o bom?
Se o segundo método é a maneira correta de fazê-lo, qual o sentido de usar codecs.open(filename, "w", "utf-8")
?