Ciao a tutti,
in preda alla disperazione provo a scrivere qui per un aiuto.
Premesso che non sono un esperto di PHP ma che no necessità di utilizzarlo a supporto di un'altra applicazione, ho questo tipo di problema: dopo aver interrogato mySQL con una semplice SELECT ho necessità di fare json_encode sul risultato perchè poi sarà oggetto di parsing.
Ho scoperto che l'encode json di una stringa deve essere UTF8 infatti il risultato laddove sono presenti delle accentate da un campo null.
Quello che faccio è questo:
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
$array = objectToArray($obj);
$fab[] = array('Array'=>array_map("utf8_encode",$array));
}
$json_string = json_encode($fab);
Dove objectToArray è una funzione che restituisce un'array a partire da l'oggetto restituito dal recordset.
Il problema è che i caratteri accentati vengono convertiti (credo a seguito dell'encoding in UTF8) ad esempio con una notazione del tipo \u00c8 (lettera "é" maiuscola) mentre io credo di aver bisogno di leggere la lettera così come scritta nel DB perchè così il parsing mi fa crashare l'app.
Il campo del DB ha come collation UTF8 e all'interno della tabella da CPanel leggo il contenuto regolarmente.
Aggiungo che se faccio un print_r dell'array le accentate l vedo correttamente.
Sicuramente mi manca qualche concetto base...spero in un aiuto che mi indirizzi verso una possibile soluzione alla decima ora sopra il problema sto gettando la spugna
Grazie mille.
Fabrizio