我尝试从数组中获取数据,但它无法识别acents。
public function model(array $row)
{
return new Dato([
'name' => $row['nombre_completo'],
'pedido' => $row['curso_de_interes'],
'hora_contacto' => $row['horario_de_contacto'],
'email' => $row['correo_electrónico'],
'telefono' => $row['número_de_teléfono'],
]);
}
数据来自CSV存档,问题出在$row['correo_electrónico']和$row['número_de_teléfono']。它不认识德阿森特斯。
我尝试使用"correo_electr\u00f3nico"而不是"correo_electrónico"但仍然失败
更新
我只是忽略了De Acents,它工作正常
我使用"correo_electronico"而不是"correo_electrónico">
多谢
这看起来像一个编码问题,您需要弄清楚您在代码中使用了什么编码以及行索引中使用了什么。 然后,您必须转换编码以符合您的需要。
尝试
foreach($row as $key => $value) echo $key . ' is encoded as ' . mb_detect_encoding($key) . " <BR>n";
echo 'your code is encoded as ' . mb_detect_encoding('número_de_teléfono');
如果mb_detect_encoding()
不起作用,您可以尝试使用iconv_get_encoding()
然后,您可以将编码转换为所需的mb_convert_encoding()
或iconv()