Eu tenho uma coisa muito simples que apenas gera algumas coisas no formato CSV, mas deve ser UTF-8. Abro esse arquivo no TextEdit ou TextMate ou Dreamweaver e ele exibe caracteres UTF-8 corretamente, mas se eu o abrir no Excel, ele está fazendo esse tipo de coisa boba. Aqui está o que eu tenho na cabeça do meu documento:
header("content-type:application/csv;charset=UTF-8");
header("Content-Disposition:attachment;filename=\"CHS.csv\"");
Tudo isso parece ter o efeito desejado, exceto o Excel (Mac, 2008) não deseja importá-lo adequadamente. Não há opções no Excel para "abrir como UTF-8" ou algo assim, então ... estou ficando um pouco irritado.
Não consigo encontrar soluções claras para isso em nenhum lugar, apesar de muitas pessoas terem o mesmo problema. O que mais vejo é incluir a lista técnica, mas não consigo descobrir exatamente como fazer isso. Como você pode ver acima, estou apenas echo
inserindo esses dados, não estou escrevendo nenhum arquivo. Posso fazer isso se precisar, mas não o faço porque não parece haver necessidade neste momento. Qualquer ajuda?
Atualização: tentei repetir a BOM como a echo pack("CCC", 0xef, 0xbb, 0xbf);
que acabei de extrair de um site que estava tentando detectar a BOM. Mas o Excel apenas anexa esses três caracteres à primeira célula quando é importada e ainda atrapalha os caracteres especiais.