PHP fputcsv编码

nya*_*nev 4 php csv encoding export-to-csv

我用fputcsv创建csv文件.我希望csv文件在windows1251 ecnding中.但找不到解决方案.我怎样才能做到这一点?干杯

Mih*_*rga 9

excel文件的默认编码主要是机器特定的ANSI windows1252.但是,由于您正在创建该文件并且可能插入UTF-8字符,因此该文件无法正常处理.

您可以iconv()在创建文件时使用.例如:

function encodeCSV(&$value, $key){
    $value = iconv('UTF-8', 'Windows-1252', $value);
}
array_walk($values, 'encodeCSV');
Run Code Online (Sandbox Code Playgroud)

  • 刚醒来:),EN-US的`windows1252` (2认同)

Ars*_*sum 8

它正在工作:
在fputcsv之前享受使用它:

$line = array_map("utf8_decode", $line);
Run Code Online (Sandbox Code Playgroud)

  • 被低估的评论! (2认同)

pr1*_*nc3 6

fputs( $fp, $bom = chr(0xEF) . chr(0xBB) . chr(0xBF) );
Run Code Online (Sandbox Code Playgroud)

试试这个对我有用!


dec*_*eze 5

该文件将使用您的字符串所使用的任何编码。PHP字符串是原始字节数组,其编码取决于字节来自何处。如果您只是从源代码文件中读取它们,则它们将保存在您的源代码中。如果它们来自数据库,则使用数据库连接设置的任何编码。

如果您需要从一种编码转换为另一种编码,请使用iconv。如果您需要更深入的信息,请参见此处: