Estoy desarrollando una parte de una aplicación que se encarga de exportar algunos datos a archivos CSV. La aplicación siempre utiliza UTF-8 por su carácter multilingüe a todos los niveles. Pero al abrir dichos archivos CSV (que contienen, por ejemplo, diacríticos, letras cirílicas, letras griegas) en Excel no se obtienen los resultados esperados mostrando algo como Г"/Г¤, Г-/Г¶
. Y no sé cómo forzar a Excel a entender que el archivo CSV abierto está codificado en UTF-8. También he intentado especificar UTF-8 BOM EF BB BF
, pero Excel lo ignora.
¿Hay alguna solución?
P.D. ¿Qué herramientas pueden comportarse potencialmente como lo hace Excel?
ACTUALIZACIÓN
Tengo que decir que he confundido a la comunidad con la formulación de la pregunta. Cuando formulé esta pregunta, pedía una forma de abrir un archivo CSV en UTF-8 en Excel sin problemas para un usuario, de forma fluida y transparente. Sin embargo, utilicé una formulación errónea pidiendo hacerlo automáticamente. Eso es muy confuso y choca con la automatización de macros VBA. Hay dos respuestas para estas preguntas que aprecio más: la primera respuesta de Alex https://stackoverflow.com/a/6002338/166589, y he aceptado esta respuesta; y la segunda de Mark https://stackoverflow.com/a/6488070/166589 que ha aparecido un poco más tarde. Desde el punto de vista de la usabilidad, Excel parecía carecer de un buen soporte UTF-8 CSV, por lo que considero que ambas respuestas son correctas, y he aceptado la primera de Alex porque realmente decía que Excel no era capaz de hacerlo de forma transparente. Eso es lo que he confundido con automáticamente aquí. Mark's respuesta promueve una forma más complicada para los usuarios más avanzados para lograr el resultado esperado. Ambas respuestas son geniales, pero la de Alex's se ajusta un poco mejor a mi pregunta no claramente especificada.
ACTUALIZACIÓN 2
Cinco meses después de la última edición, me he dado cuenta de que la respuesta de Alex ha 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.
Alex es correcto, pero como tienes que exportar a csv, puedes dar a los usuarios este consejo al abrir los archivos csv:
De esta manera los caracteres especiales deberían aparecer correctamente.
Primero guarde la hoja de cálculo de Excel como texto Unicode. Abra el archivo TXT utilizando el explorador de Internet y haga clic en "Guardar como" Codificación TXT - elegir la codificación adecuada, es decir, para Win cirílico 1251