Menyahkod Rentetan Unikod Berkod dalam JavaScript
Apabila bekerja dengan rentetan yang mengandungi aksara Unikod yang dikodkan, mungkin sukar untuk menyahkodnya dengan betul. Artikel ini menangani isu rentetan penyahkodan yang telah dikodkan dengan aksara Unikod yang terlepas.
Masalah khusus yang diterangkan dalam soalan melibatkan rentetan yang menyerupai httpu00253Au00252Fu00252Fexample.com. Selepas mencuba pelbagai kaedah seperti unescape, decodeURI dan decodeURIComponent, penyelesaian yang dicadangkan ialah menggunakan penggantian rentetan.
Walau bagaimanapun, syarat awal adalah penting untuk dipertimbangkan. Rentetan yang dipersoalkan tidak ditaip secara langsung tetapi sebaliknya merupakan subrentetan yang diperoleh daripada sekeping kod lain, seperti yang dilihat dalam contoh berikut:
var s = 'http\u00253A\u00252F\u00252Fexample.com';
Ini menerangkan sebab unescape() tidak menghasilkan hasil yang diharapkan.
Kunci untuk menyahkod rentetan sedemikian terletak pada penggunaan JSON.parse. Dengan merangkum rentetan yang dikodkan dalam petikan berganda dan menghuraikannya sebagai JSON, penyemak imbas secara automatik menyahkod aksara Unicode. Contoh berikut menunjukkan pendekatan ini:
unescape(JSON.parse('"http\u00253A\u00252F\u00252Fexample.com"')); // Output: 'http://example.com'
Dalam kes ini, unescape() digunakan untuk mengalih keluar sebarang jujukan pelarian yang berpotensi. Ambil perhatian bahawa unescape() tidak digunakan dalam persekitaran bukan penyemak imbas dan tidak wujud dalam TypeScript. Untuk keserasian yang lebih luas, adalah disyorkan untuk menggunakan decodeURIComponent sebaliknya.
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Rentetan Unicode yang Dilepaskan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!