Saya menyiarkan kandungan medan borang ke skrip PHP melalui AJAX dan menggunakan JavaScript untuk melarikan diri (field_contents). Masalahnya ialah sebarang tanda tambah dialih keluar dan digantikan dengan ruang. Bagaimanakah saya boleh "mengekod" tanda tambah dengan selamat dan kemudian "menyahkod" dengan sewajarnya dalam PHP
Cuba dalam JavaScript:
PHP:
Gunakan encodeuriccomponent() dalam JS dan PHP dan anda harus menerima nilai yang betul.
NOTA: Apabila anda mengakses $_GET, $_POST atau $_REQUEST dalam PHP, anda sedang mendapatkan semula nilai yang telah dinyahkodkan.
Contoh:
Dalam JS anda:
Pada pelayan anda
Hanya permintaan HTTP asal mengandungi data berkod URL.
Untuk permintaan GET, anda boleh mendapatkannya daripada URI. $_SERVER['REQUEST_URI'] atau $_SERVER['QUERY_STRING']. Untuk POST berkod urlen, file_get_contents('php://stdin')
Nota:
Nyahkod() hanya digunakan pada aksara yang dikodkan bait tunggal. Ia tidak berfungsi untuk keseluruhan julat UTF-8.
cth:
Nota:
"%C4%80"
is equivalent to:escape('xc4x80')
Ini ialah jujukan bait yang mewakili Ā dalam UTF-8 (xc4x80). Jadi jika anda menggunakan encodeuriccomponent(), pihak pelayan anda mesti tahu bahawa ia menerima UTF-8. Jika tidak PHP akan merosakkan pengekodan.