Sto utilizzando Laravel (un framework PHP) per scrivere un servizio per dispositivi mobili e avere i dati restituiti nel formato JSON
. Nel risultato dei dati ci sono alcuni campi codificati in UTF-8
.'Caratteri non corretti UTF-8, probabilmente erroneamente codificati' in Laravel
la seguente dichiarazione
return JsonResponse::create($data);
restituisce l'errore sotto
InvalidArgumentException
HELP
Malformed UTF-8 characters, possibly incorrectly encoded
Open: /var/www/html/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
} catch (\Exception $exception) {
restore_error_handler();
throw $exception;
}
if (JSON_ERROR_NONE !== json_last_error()) {
throw new \InvalidArgumentException($this->transformJsonError());
}
Ho cambiato:
return JsonResponse::create($data);
a
return JsonResponse::create($data, 200, array('Content-Type'=>'application/json; charset=utf-8'));
ma ancora non funziona.
Come posso risolvere il problema?
Che cos'è '$ data'? Da dove viene, cosa c'è dentro, come fai a sapere che è codificato in UTF-8? – deceze
$ data è dati di matrice dal database. Ho controllato $ data, ha una stringa "兆 琪" => errore quando restituisco json. –
Risolto, è un mio errore. Avere un codice di linea non buono: substr ('兆 琪', ...) Grazie! –