我为JSON PHP文件构建了一个CSV。但它无法正常工作。值“faktor”总是为null。价值问题有时是空的。我希望你能帮助我。谢谢!
PHP文件
<?php
$row = 0;
$filename = "launeImTeam.csv";
$questions = array();
if (($handle = fopen($filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$questions[$row] = array(
"question" => $data[0],
"typ" => $data[1],
"faktor" => $data[2]
);
$row++;
}
fclose($handle);
}
$final = array("alleFragen"=>$questions);
echo json_encode($final);
?>
这是CSV文件的数据。 (它的德语)。
Wie sehen Sie Ihren zeitlichen Plan?;fuenf;Qualität;
Ich möchte Kaffee?;fuenf;Qualität;
Sind sie da???;jn;Qualität;
nein?;jn;Qualität;
这是结果。 :(
{
"alleFragen":[
{
"question":"Wie sehen Sie Ihren zeitlichen Plan?",
"typ":"fuenf",
"faktor":null
},
{
"question":null,
"typ":"fuenf",
"faktor":null
},
{
"question":"Sind sie da???",
"typ":"jn",
"faktor":null
},
{
"question":"nein?",
"typ":"jn",
"faktor":null
}
]
}
抱歉我的英文! :)
编辑:是不是因为äöü??答案 0 :(得分:1)
这是因为您的值未编码为UTF-8。在调用阵列上的json_encode
之前,使用iconv()或utf8_encode将它们从原始编码(对于CSV文件)转换为UTF-8。任何无效的UTF-8值都将返回null
。
the documentation of json_encode中注明了这一点。
答案 1 :(得分:0)
json_encode的默认行为是转义所有Unicode字符。
使用JSON_UNESCAPED_UNICODE
选项和json_encode函数,如果json_last_error()
函数有任何错误。