Ho uno script PHP che si occupa di un'ampia varietà di lingue. Sfortunatamente, ogni volta che provo a usare json_encode
, qualsiasi output Unicode viene convertito in entità esadecimali. È questo il comportamento previsto? C'è un modo per convertire l'output in caratteri UTF-8?Perché la funzione json_encode di PHP converte le stringhe UTF-8 in entità esadecimali?
Ecco un esempio di quello che sto vedendo:
INPUT
echo $text;
USCITA
База данни грешка.
INPUT
json_encode($text);
USCITA
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
Aha. Grazie! Avrei dovuto leggere la documentazione con più attenzione. Grazie. –
Mi chiedo se esiste un modo per impostarlo come predefinito. –
JSON_UNESCAPED_UNICODE è stato introdotto in PHP 5.4.0 e non è disponibile nelle versioni precedenti. Quando lo si utilizza nelle versioni precedenti si otterrà questo errore: "Attenzione: json_encode() si aspetta che il parametro 2 sia lungo, stringa data in ...". Vedere la risposta di CertaiN sotto per la soluzione 5.3. –