utf 8符号化php生成csvオープン乱符号化の問題を解決する

3405 ワード

php
$arrTitle = array('   ', '   ', '   ', '   ', '   ', '   ');
$arrValue[0] = array('1', '2"*x,x', "t',3", '4', '5', '6');
$arrValue[1] = array('1', '2"*x,x', "t',3", '4', '5', '6');
$path = './tttnew2.csv';
//        utf8,    utf8_encode          UTF    。
//$msg = utf8_encode($msg);
//$msg = iconv('gbk', 'utf-8', $msg);
//  bom    "\xEF\xBB\xBF"             
//     csv      ,            ,         %22  
$strBOMHEAD = "\xEF\xBB\xBF";
$fp = @fopen($path, 'a');
@fwrite($fp, $strBOMHEAD);
//   csv
@fwrite($fp, implode(',', $arrTitle) . "\r
"); foreach ($arrValue as $k => $val) { foreach ($val as $kkey => $vval) { $val[$kkey] = str_replace('"','%22',$vval); } $strTmp = '"'.implode('","', $val).'"'; @fwrite($fp, $strTmp. "\r
"); } @fclose($fp);

生成したcsvはwindowの下で直接開くことができます