He estado tratando de encontrar una solución / explicación razonable (sin éxito) para averiguar por qué Excel omite la BOM al guardar un archivo en el tipo CSV.
Perdóname si encuentras esto como un duplicado de esta pregunta. Esto maneja la lectura de archivos CSV con codificación no ASCII, pero no cubre guardar el archivo nuevamente (que es donde radica el mayor problema).
Aquí está mi situación actual (que voy a reunir es común entre el software localizado que trata con caracteres Unicode y un formato CSV):
Exportamos datos a un formato CSV usando UTF-16LE, asegurando que la lista de materiales esté configurada (0xFFFE). Validamos después de que el archivo se genera con un editor Hex para asegurarnos de que se configuró correctamente.
Abra el archivo en Excel (para este ejemplo estamos exportando caracteres japoneses) y sea testigo de que Excel maneja cargar el archivo con la codificación correcta.
Los intentos de guardar este archivo le indicarán un mensaje de advertencia que indica que el archivo puede contener características que pueden no ser compatibles con la codificación Unicode, pero le pregunta si desea guardar de todos modos.
Si selecciona el cuadro de diálogo Guardar como, inmediatamente le pedirá que guarde el archivo como "Texto Unicode" en lugar de CSV. Si selecciona la extensión "CSV" y guarda el archivo, elimina la lista de materiales (obviamente, junto con todos los caracteres japoneses).
¿Por qué sucedería esto? ¿Existe una solución a este problema o se trata de un 'error' / limitación conocido de Excel?
Además (como un problema secundario) parece que Excel, al cargar archivos CSV codificados UTF-16LE, solo usa delimitadores TAB. De nuevo, ¿es este otro 'error' / limitación conocido de Excel?