php 到 csv 和特殊字符

标签 php apache csv character-encoding

我从事这个工作已经有一段时间了。 我正在尝试从 php 脚本创建一个 .csv 文件(从数据库获取数据)。 我的问题是特殊字符无法正确显示。

奇怪的是,来自数据库的特殊字符显示正确,但问题是我需要向条目添加某些字符。

例如,数据库返回“Humidité”(法语,湿度的意思)。 这在导出的 .csv 中正确显示。

但是假设我从我的 php 脚本中添加了一个字符串

$member->humidity . ': 10% à 20%';

在 csv 中我会看到

Humidité: 10% [weird characters] 20%

所以 humité 中的“é”没问题,但我没有看到我在 PHP 中添加的“à”。

我的标题看起来没问题,因为一些特殊字符正确显示

$data = the whole csv file in a string      

header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header("Content-Disposition: attachment; filename=file.csv");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Length: " . strlen($data));
echo "\xEF\xBB\xBF"; // UTF-8 BOM
echo $data;

所以我猜测问题出在我的 Apache 服务器上。

当我发现this时我改变了我的default_charset = "utf-8"在我的 php.ini 中并添加 AddDefaultCharset UTF-8在我的 httpd.conf 中没有解决它。

有什么想法吗? 谢谢!

最佳答案

您的编辑器可能未设置为 UTF-8。检查编辑器的字符集设置。您还可以使用 Notepad++ 等编辑器转换文件。

关于php 到 csv 和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096140/

相关文章:

csv - 批量获取 csv 值并将其保存到变量中以供进一步使用

php - MySQL 插入语法错误 - 找不到它!

php - 如何在php中以root身份访问ubuntu文件

php - VS Code PHP Intelephense 数组中的对象未向 -> 运算符显示属性和函数

apache - 在 docker 容器中运行 apache tomcat 服务器

apache - 禁止访问 您无权访问此服务器。 Centos 6/Laravel 4

php - 查询 MAX 函数不起作用

apache - WAMP服务器无法上线

csv - Tableau 未将我的 csv 数据源转换为表

python - 在 Python 3 中在线读取 CSV 文件中的数据