使用php将CSV文件转换为UCS-2LE编码

时间:2014-11-19 15:00:40

标签: php csv mb-convert-encoding

我正在创建一个csv文件。我需要它是UCS-2LE编码。我尝试了以下方法,但都不起作用:

  • $value = mb_convert_encoding($value,"UCS-2LE");
  • $value= iconv( mb_detect_encoding( $value ), 'UCS-2LE', $value );

在Notepad ++中打开文件显示编码为ANSI。

代码:

$file = fopen($filename,"w");
array_walk($csv_data, 'encodeCSV');

foreach ($csv_data as $line) {
    fputcsv($file, explode(',', $line));
}

fclose($file);

function encodeCSV(&$value, $key){
    $value = mb_convert_encoding($value,"UCS-2LE");
    //$value= iconv( mb_detect_encoding( $value ), 'UCS-2LE', $value );
}

1 个答案:

答案 0 :(得分:0)

您应该在文件开头添加字节顺序标记(BOM)。这应该是' \ xff \ xfe'在你的情况下:

$file = fopen($filename,"w");
fwrite($file, '\xff\xfe');