Cuando noté que el json_encode ($ matriz) de PHP estropea las cosas con los signos diacríticos. Si actualizo el texto del tipo de columna de mi base de datos con JSON creado con JavaScript pasado por HTTP, todo se ve bien. pero cuando creo el JSON en PHP , algunos caracteres se codifican de forma extraña.
Tengo esta matriz;
$array = ['M-am întîlnit ieri cu','fosta mea profă de matematică']; $text = implode(",",$array); // this looks good in db $json = json_encode($array); // this don't and returns error when try to decode later.En primer lugar, vale la pena señalar que PHP no está "estropeando" nada. Son caracteres de escape, lo que puede parecer extraño, pero es perfectamente válido y cuando json_decode lo decodifique más tarde, será igual que originalmente. Ver aquí: https://3v4l.org/Smj2F
Sin embargo, si no te gusta escapar, puedes usar el indicador JSON_UNESCAPED_UNICODE :
https://www.php.net/function.json-encode
Esta bandera "codificará literalmente caracteres Unicode multibyte" de acuerdo con https://www.php.net/manual/en/json.constants.php .
Entonces puedes hacer:
json_encode($array, JSON_UNESCAPED_UNICODE);Y te dará el siguiente resultado:
["M-am întîlnit ieri cu","fosta mea profă de matematică"]Ejemplo de trabajo: https://3v4l.org/daETG