Estou desenvolvendo uma parte de um aplicativo responsável pela exportação de alguns dados para arquivos CSV. O aplicativo sempre usa UTF-8 devido à sua natureza multilíngue em todos os níveis. Mas abrir esses arquivos CSV (contendo, por exemplo, diacríticos, letras cirílicas, letras gregas) no Excel não alcança os resultados esperados, mostrando algo parecido Г„/Г¤, Г–/Г¶
. E não sei como forçar o Excel a entender que o arquivo CSV aberto está codificado em UTF-8. Eu também tentei especificar UTF-8 BOM EF BB BF
, mas o Excel ignora isso.
Existe alguma solução alternativa?
PS Quais ferramentas podem se comportar como o Excel?
ATUALIZAR
Devo dizer que confundi a comunidade com a formulação da pergunta. Quando estava fazendo essa pergunta, solicitei uma maneira de abrir um arquivo CSV UTF-8 no Excel sem problemas para o usuário, de maneira fluente e transparente. No entanto, usei uma formulação errada pedindo fazê-lo automaticamente . Isso é muito confuso e entra em conflito com a automação de macro do VBA. Há duas respostas para essas perguntas que eu mais aprecio: a primeira resposta de Alex https://stackoverflow.com/a/6002338/166589 e aceitei essa resposta; e o segundo por Mark https://stackoverflow.com/a/6488070/166589que apareceram um pouco mais tarde. Do ponto de vista da usabilidade, o Excel parecia não ter um bom suporte ao usuário UTF-8 CSV, portanto considero as duas respostas corretas e aceitei a resposta de Alex primeiro, porque realmente afirmava que o Excel não era capaz de fazer isso. isso de forma transparente. É com isso que eu confundi automaticamente aqui. A resposta de Mark promove uma maneira mais complicada para usuários mais avançados alcançarem o resultado esperado. Ambas as respostas são ótimas, mas a de Alex se encaixa um pouco melhor na minha pergunta não claramente especificada.
ATUALIZAÇÃO 2
Cinco meses depois da última edição, notei que a resposta de Alex desapareceu por algum motivo. Eu realmente espero que não tenha sido uma questão técnica e espero que não haja mais discussões sobre qual resposta é maior agora. Então, estou aceitando a resposta de Mark como a melhor.
\t
como delimitador. Funcionará na configuração do Excel em inglês e não em inglês. Pode pressionar Ctrl-S
sem selecionar o formato do arquivo, etc. Preservará os caracteres Unicode.