I see a change was made with how text documents are saved in CS16 (via llnode.NodeAddVersion() on $TypeTextDocument). There's now a hardcoded insertion of a byte-order marker (BOM) for text/plain mimetypes like this:
if ( version.pMimetype == "text/plain" ) dataLen += 3 bom = Bytes.Allocate(3) Bytes.PutU1( bom, 0, 0xEF, Bytes.InPlace ) Bytes.PutU1( bom, 1, 0xBB, Bytes.InPlace ) Bytes.PutU1( bom, 2, 0xBF, Bytes.InPlace )end::written = DAPI.VerStreamWrite( stream, bom )
Why was this added and why is it limited to text/plain mimetypes? Furthermore, the BOM insertion doesn't check if the BOM already exists and will therefore keep adding additional BOMs on each consecutive save.