title: How can I output a UTF-8 CSV in PHP that Excel will read properly?
body: <p>I've got this very simple thing that just outputs some stuff in CSV format, but it's got to be UTF-8. I open this file in TextEdit or TextMate or Dreamweaver and it displays UTF-8 characters properly, but if I open it in Excel it's doing this silly íÄ kind of thing instead. Here's what I've got at the head of my document:</p>
  
  <pre><code>header("content-type:application/csv;charset=UTF-8");
  header("Content-Disposition:attachment;filename=\"CHS.csv\"");
  </code></pre>
  
  <p>This all seems to have the desired effect except Excel (Mac, 2008) doesn't want to import it properly. There's no options in Excel for me to "open as UTF-8" or anything, so … I'm getting a little annoyed.</p>
  
  <p>I can't seem to find any clear solutions to this anywhere, despite a lot of people having the same problem. The thing I see the most is to include the BOM, but I can't exactly figure out how to do that. As you can see above I'm just <code>echo</code>ing this data, I'm not writing any file. I can do that if I need to, I'm just not because there doesn't seem like a need for it at this point. Any help?</p>
  
  <p>Update: I tried echoing the BOM as <code>echo pack("CCC", 0xef, 0xbb, 0xbf);</code> which I just pulled from a site that was trying to detect the BOM. But Excel just appends those three characters to the very first cell when it imports, and still messes up the special characters.</p>