【发布时间】:2018-03-31 03:16:00
【问题描述】:
所以我正在上传一个 csv 文件。其中一列有一个单引号。
145 Test St'
数组是
(
[0] => 2
[1] => 20
[2] => 145 Test St�
[3] => Test City
[4] => 1455
[5] => 919749797
)
如您所见。而不是单引号 ( ' ),它变成了 �.
从这里开始,我使用 htmlspecialchars($row),它给出了结果。
(
[0] => 2
[1] => 20
[2] =>
[3] => Test City
[4] => 1455
[5] => 919749797
)
第一个问题,为什么 ( ' ) 变成 ( � ) ?
第二个问题,为什么使用htmlspecialchars()后,值消失了?
第三个问题,我怎样才能保留(')?
感谢能回答的人。
编辑:
$row = array_map('str_getcsv', file($_FILES['file']['tmp_name']));
$csv = Array();
$head = $row[0];
$col = count($row[0]);
unset($row[0]);
pre($row[1]);
$row[1] = array_map('htmlentities', $row[1]);
pre($row[1]);
编辑:
pre() 是我创建的一个函数,其工作原理类似于
<pre></pre>.
编辑:
我在终端使用文件 --mime 查看了 CSV 文件。它的字符集是未知的 8 位。我通过另存为将 CSV 文件转换为 UTF-8。之后,我设法成功上传了 CSV 文件。问题在于 CSV 文件的编码。
是否可以将文件转换为 UTF-8?
【问题讨论】:
-
文件是utf8?还是你读文件使用utf8?你能显示你的代码吗?谢谢
-
@lighter 什么文件? csv?
-
是的 csv 文件,你能显示你读取的文件代码吗?
-
你能粘贴pre()的定义吗?否则很难回答你的问题:)
标签: php mongodb csv encoding export-to-csv