Using Odoo 18.4.
In the Accounting App, I can go to Reporting->Audit Reports->General Ledger and then via the gear symbol make a DATEV Data export. This creates a zip file named general_ledger_data.zip which contains 3 CSV files EXTF_accounting_entries.csv etc.
The CSV files are created with UTF-8 encoding, but without a ByteOrderMark.
In the official definition of the DATEV format (on https://developer.datev.de/de/file-format/details/datev-format/character-set) it is stated:
Der Default-Zeichensatz für den Import nach DATEV Rechnungswesen ist der Standard ISO-8859-1 bzw. CodePage 1252. Zusätzlich kann DATEV Rechnungswesen auch die Unicode-Standards (UTF-8, -16, -32) interpretieren, sofern die ByteOrderMark (BOM, gilt auch für UTF-8) mitgeliefert wird.
Translation:
The default character set for importing into DATEV Accounting is the ISO-8859-1 standard, code page 1252. Additionally, DATEV Accounting can also interpret the Unicode standards (UTF-8, -16, -32) if the ByteOrderMark (BOM, also applicable to UTF-8) is included.
It seems that the output is not in conformance with the DATEV format definition, since it is UTF-8, but without the ByteOrderMark.
Is there a fix to get the CSV files to be created WITH the ByteOrderMark?
This is not only relevant for DATEV, but also to simply open the CSV files in Microsoft Excel, which will only interpret the characters in UTF-8 files correctly if there is a ByteOrderMark.