使用MySQL进入OUTFILE生成Excel可读的UTF8数据

我有类似这个问题的问题。那就是 - 我需要将MySQL数据库中的一些UTF8数据导出到MS Excel。 好极了Excel提供: Excel将UTF8格式的CSV文件作为ANSCI打开,从而破坏 Excel将正确打开制表符分隔的UTF8文件,但不支持换行符(我的数据有换行符,但在最坏的情况下我可能会松开这些行) 显然,Excel将打开UTF-16LE(小端)编码的CSV。但是,据我所知,MySQL INTO OUTFILE不接受内容编码参数,只是默认为数据库编码(UTF8)。 我的网络应用程序是PHP驱动的,但不幸的是我不能使用PHP Excel文件制作库,因为数据库非常大。我的所有出口都必须通过MySQL完成。 如果有人知道如何让MySQL在这个问题上跳过Excel的箍,那就太好了。 非常感谢, 插口 编辑:此答案描述了适用于Excel 2007的解决方案。向文件添加“BOM”,我可以通过附加BOM的PHP脚本将输出的文件提供给客户端来执行此操作。理想情况下,我想找到一个在2003年也有效的解决方案。     
已邀请:
我记得用Excel遇到了这个问题。 BOM修复程序适用于Excel 2007和2010.我们也想支持2003,但我们的解决方案是只编写XLS文件而不是CSV文件(使用Java)。这对你来说听起来不是一个选择,因为你是从MySQL导出的。想到的一个想法是在导出后将UTF8输出转换为UTF-16LE。本页介绍了如何使用Perl。     
为了处理likebreaks,我建议添加:
FIELDS ENCLOSED BY '"'
来自mysql文档的更完整示例:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY 'n'
  FROM test_table;
    

要回复问题请先登录注册