Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menghalang aksara Unicode daripada dikodkan sebagai entiti perenambelasan apabila menggunakan json_encode dalam PHP?
Mengendalikan Rentetan UTF-8 dalam PHP: json_encode dan JSON_UNESCAPED_UNICODE
Dalam skrip PHP yang melibatkan kandungan berbilang bahasa, gelagat fungsi json_encode boleh menimbulkan persoalan. Adalah diperhatikan bahawa aksara Unicode selalunya berakhir sebagai entiti heksadesimal.
Contoh:
Input: echo $text;
Output: "База данни грешка."
Input: json_encode($text);
Output: "u0411u0430u03047u 38 u0433u0440u0435u0448u043au0430."
Memahami Penukaran
Secara lalai, json_encode mengekod rentetan Unicode sebagai entiti perenambelasan. Ini adalah amalan biasa dalam JSON untuk memastikan keserasian dengan sistem lama yang mungkin tidak menyokong Unicode.
Penyelesaian: JSON_UNESCAPED_UNICODE
Diperkenalkan dalam PHP 5.4.0, bendera JSON_UNESCAPED_UNICODE membolehkan anda memintas penukaran ini. Apabila dinyatakan, ia mengarahkan json_encode untuk mengeluarkan aksara UTF-8 secara langsung.
Penggunaan:
<code class="php">json_encode($text, JSON_UNESCAPED_UNICODE);</code>
Dengan bendera ini, output akan mengekalkan pengekodan aksara Unicode asalnya :
<code class="php">\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430.</code>
Dengan menggunakan bendera JSON_UNESCAPED_UNICODE, anda boleh mengekalkan aksara Unicode asal dalam output JSON anda. Ini amat berguna apabila bekerja dengan kandungan berbilang bahasa atau menyepadukan dengan sistem yang memerlukan sokongan Unicode sebenar.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menghalang aksara Unicode daripada dikodkan sebagai entiti perenambelasan apabila menggunakan json_encode dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!