Estoy desarrollando una parte de una aplicación que se encarga de exportar algunos datos a archivos CSV. La aplicación siempre usa UTF-8 debido a su naturaleza multilingüe en todos los niveles. Pero abrir tales archivos CSV (que contienen, por ejemplo, diacríticos, letras cirílicas, letras griegas) en Excel no logra los resultados esperados que muestran algo así Г„/Г¤, Г–/Г¶
. Y no sé cómo obligar a Excel a comprender que el archivo CSV abierto está codificado en UTF-8. También intenté especificar UTF-8 BOM EF BB BF
, pero Excel lo ignora.
¿Hay algún trabajo alrededor?
PD: ¿Qué herramientas pueden comportarse como Excel?
ACTUALIZAR
Tengo que decir que confundí a la comunidad con la formulación de la pregunta. Cuando hacía esta pregunta, pedí una forma de abrir un archivo CSV UTF-8 en Excel sin ningún problema para un usuario, de manera fluida y transparente. Sin embargo, utilicé una formulación incorrecta pidiendo hacerlo automáticamente . Eso es muy confuso y choca con la automatización de macros VBA. Hay dos respuestas para estas preguntas que más aprecio: la primera respuesta de Alex https://stackoverflow.com/a/6002338/166589 , y he aceptado esta respuesta; y el segundo por Mark https://stackoverflow.com/a/6488070/166589que han aparecido un poco más tarde Desde el punto de vista de la usabilidad, Excel parecía carecer de un buen soporte CSV UTF-8 fácil de usar, por lo que considero que ambas respuestas son correctas, y primero acepté la respuesta de Alex porque realmente decía que Excel no podía hacerlo que de forma transparente Eso es con lo que confundí automáticamente aquí. La respuesta de Mark promueve una forma más complicada para que los usuarios más avanzados logren el resultado esperado. Ambas respuestas son geniales, pero la de Alex se ajusta un poco mejor a mi pregunta no claramente especificada.
ACTUALIZACIÓN 2
Cinco meses después de la última edición, noté que la respuesta de Alex había desaparecido por alguna razón. Realmente espero que no haya sido un problema técnico y espero que no haya más discusión sobre qué respuesta es mejor ahora. Así que acepto la respuesta de Mark como la mejor.
\t
como delimitador. Funcionará en configuración de Excel en inglés y no en inglés. Puede presionar Ctrl-S
sin seleccionar el formato de archivo, etc. Conservará los caracteres Unicode.