title: Adding BOM to CSV file using fputcsv
body: <p>I have a simple CSV file being generated that includes foreign characters. I've noted that if I don't include a Byte Order Mark that the foreign characters aren't appearing properly in Excel (but they appear fine when a BOM is present).</p>
  
  <p>How can I add a BOM to the beginning of the file when it's first created? I've tried the following and it's not working :-/</p>
  
  <pre><code>function processForm($competition, $competitionEntry) {
      $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM
  
      $filename = $competition-&gt;ID.".csv";
      $file = "entries/".$filename;     
  
      $fields = array_keys($competitionEntry);
      $submittedForm = $competitionEntry;
  
      if(file_exists($file)) {
          $fp = fopen($file, 'a');
          if($fp &amp;&amp; 
              fputcsv($fp, $submittedForm) &amp;&amp; 
              fclose($fp)) {
              return true;
          } 
      } else { // CREATE NEW FILE
          $fp = fopen($file, 'w');
          if($fp &amp;&amp; 
              fputcsv($fp, $BOM) &amp;&amp; // WRITE BOM TO FILE   
              fputcsv($fp, $fields) &amp;&amp;
              fputcsv($fp, $submittedForm) &amp;&amp;
              fclose($fp)) {     
              return true;
          } 
      }
      return false;
  }
  </code></pre>