我在PHP中有一个CSV字符串,由mb_detect_encoding检测为UTF8。此字符串将写入文件。当我在文本编辑器(Programmers Notepad)中打开它时,编辑器说它是UTF8 No Mark,当我将编码更改为ANSI时,它在Excel中正确打开。 我想用ANSI编写该文件,以便在我在Excel中打开它之前不必在文本编辑器中将其转换。试图使用以下内容:
使用utf8_decode,特殊字符显示为问号。 iconv和mb_convert_encoding在第一个特殊字符处剪切了strin。有关如何将此字符串转换为在Excel中打开的文件的任何想法吗?
答案 0 :(得分:0)
所以你可能导出了你的可爱数据库,完全以UTF-8编码存储,然后你在Excel中打开csv,看到一堆看起来很疯狂的角色,ä,Õ和é应该是什么?
嗯,这是一个修复:在文件中添加字节顺序标记。 Excel急需它......
function customer_download($file) {
header('Content-Type: application/force-download');
header('Content-Description: File Transfer');
header('Content-disposition: attachment; filename="'.$file.'"');
@include_once('file_get_contents.php');
$csv = @file_get_content($file);
die(chr(0xEF).chr(0xBB).chr(0xBF).$csv);
}