我正在创建一个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 );
}
答案 0 :(得分:0)
您应该在文件开头添加字节顺序标记(BOM)。这应该是' \ xff \ xfe'在你的情况下:
$file = fopen($filename,"w");
fwrite($file, '\xff\xfe');