当前位置: 首页 > 知识库问答 >
问题:

如何使用PHP生成具有默认UTF-8编码的csv文件

尤飞尘
2023-03-14

通过从mysql表获取数据,我正在生成csv文件并上传到某个ftp文件夹。但是其他从ftp端使用这个csv文件的人说它是ANSI编码的。如何将其更改为UTF-8编码?为此,我使用下面的代码。

   header('Content-Encoding: utf-8');
   header('Content-Type: text/csv; charset=utf-8');
    $fh1 = fopen($current_csv_name, 'w+');
    foreach($csv_data as $curl_response)
    {
        fputs($fh1, implode($curl_response, ';')."\n");
    }
    fclose($fh1); 

当我下载文件并在记事本中打开,然后单击保存,因为它总是显示编码为ASNI。我哪里做错了?任何帮助将不胜感激。

共有1个答案

仲孙默
2023-03-14

我认为您需要在文件的开头添加BOM(字节顺序标记),否则,文件系统将始终假定您的字符集默认为ANSI。尝试这样做:

header('Content-Encoding: utf-8');
header('Content-Type: text/csv; charset=utf-8');
$fh1 = fopen($current_csv_name, 'w+');

$bom = chr(0xEF) . chr(0xBB) . chr(0xBF);
fputs($fh1, $bom);

foreach($csv_data as $curl_response)
{
    fputs($fh1, implode($curl_response, ';')."\n");
}
fclose($fh1);
 类似资料:
  • 问题内容: 他们在“ PHP Cookbook”中说(第589页),要将传出数据的char编码正确设置为utf-8,必须将配置编辑为utf-8。 但是,我在中找不到此配置。我是否应该简单地添加一行内容? 我有一个。如您所见(),目前尚未激活。我应该删除分号并将其设置为吗?这样可以处理默认编码吗? 我还发现了其他我不知道该怎么做的编码指令: 有什么原因为什么我不能简单地将它们全部替换为? 问题答案:

  • 问题内容: 我有一个包含unicode字符串的词典列表。 可以将字典列表写入CSV文件。 我希望CSV文件以UTF8编码。 该模块无法处理将unicode字符串转换为UTF8的操作。 该模块文档具有的一切转换为UTF-8的例子: 它也有一个类。 但是…我该如何处理这些?他们是否不必将自己插入其中,以捕获反汇编的字典并对其进行编码,然后再将其写入文件中?我不明白 问题答案: 更新 :第三方unico

  • 你好,我想写一个带有HEBREW文本的CSV。它写了一些符号,而不是希伯来文。下面是我的PHP代码。 我在互联网上查了一下,添加了“fputs($fp,$bom=(chr(0xEF).chr(0xBB).chr(0xBF))”,但没有成功。谁能帮帮我吗。 下面是我得到的结果。

  • 问题内容: 我有一个PHP脚本,名为: http://cyber- flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: 如您所见,在适当的字符位置上有很多“忙碌”。我想做的是以某种方式显示此内容,以便人们在浏览器中看到正确的UTF-8字符。 您可以将其封装在HMTL标签中并以元UTF-8编码进行设置,但是由于将从该脚本

  • 我是ServiceStack的新手。它具有为数据提供csv文件的功能,但我需要以UTF8格式下载它,因为我得到一些特殊字符。我尝试过这个配置设置。 但运气不好。。请指出我做错了什么。

  • 本章是由 Alex Cabal 最初撰写在 PHP Best Practices 中的,我们使用它作为进行建议的基础。 这不是在开玩笑。请小心、仔细并且前后一致地处理它。 目前,PHP 仍未在底层实现对 Unicode 的支持。虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将