Pengekodan JSON dan Paparan Aksara Unikod
Apabila pengekodan rentetan yang mengandungi aksara Unikod "istimewa" menggunakan fungsi json_encode PHP, ia sering muncul sebagai heksadesimal bercelaru. rentetan yang dikodkan. Contohnya:
json_encode(['foo' => '馬']); // {"foo":"\u99ac"}
Memahami Pengekodan Rentetan JSON
Dalam JSON, literal rentetan boleh diwakili sebagai titik kod Unicode yang dilepaskan dengan garis miring ke belakang ("u"). Ini membenarkan pengekodan mana-mana aksara, tanpa mengira pengekodannya dalam set aksara asal. Oleh itu, rentetan JSON di atas adalah sah dengan sempurna dan mewakili aksara yang sama dengan rakan sejawatannya yang tidak dikodkan ("馬").
Keutamaan Pengekodan Lalai PHP
Fungsi json_encode PHP mengutamakan penggunaan urutan pelarian "u" untuk pengekodan aksara bukan ASCII. Ini mematuhi piawaian JSON dan memastikan kemudahalihan data JSON. Jika dikehendaki, seseorang boleh melumpuhkan keutamaan ini dengan menyatakan bendera JSON_UNESCAPED_UNICODE:
json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE); // {"foo":"馬"}
Perwakilan Unikod dalam JSON
Perlu ambil perhatian bahawa kedua-dua aksara Unikod yang terlepas dan tidak dikodkan mempunyai makna dan nilai yang sama dalam JSON. Pilihan pengekodan bergantung pada keperluan khusus struktur data. Walau bagaimanapun, borang yang dilepaskan biasanya lebih disukai untuk kesalingoperasian dan keserasian dengan platform dan aplikasi yang berbeza.
Atas ialah kandungan terperinci Bagaimanakah `json_encode` PHP Mengendalikan Aksara Unikod dan Bagaimana Saya Boleh Mengawal Output?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!