Cara Mengkodekan dan Mendekode URL: Panduan Lengkap
Jawaban Cepat
Pengkodean URL mengubah karakter tidak aman menjadi urutan %XX dengan XX adalah nilai heksadesimal byte. Spasi menjadi %20 (atau + dalam data formulir), karakter Cina menjadi rangkaian multi-byte %XX. Gunakan Encoder URL dan Decoder URL gratis kami —semua pemrosesan dilakukan secara lokal di browser Anda.
Perkenalan
Pengkodean URL, juga dikenal sebagai pengkodean persen, adalah mekanisme untuk mengkodekan karakter yang dicadangkan dan tidak aman dalam URL sehingga URL dapat ditransmisikan dengan aman melalui internet. URLs hanya dapat berisi kumpulan karakter ASCII terbatas; karakter lainnya (spasi, huruf non-ASCII, simbol) harus dikodekan persen sebagai urutan yang dimulai dengan % diikuti oleh dua digit heksadesimal yang mewakili nilai byte.
Langkah demi Langkah
-
Identifikasi apa yang memerlukan pengkodean
Karakter yang tidak ada dalam kumpulan yang tidak dicadangkan (A-Z, a-z, 0-9, -, ., _, ~) harus dikodekan persen. Ini termasuk spasi, pemisah kueri seperti = dan &, garis miring, dan semua karakter non-ASCII seperti China, Arab, atau emoji.
-
Enkode URL atau string kueri
Tempelkan teks Anda ke alat Encoder URL. Ia menggunakan encodeURIComponent() untuk menyandikan setiap karakter yang dicadangkan. Hasilnya langsung muncul di kolom keluaran.
-
Salin hasil yang dikodekan
Klik tombol Salin untuk menyalin string yang dikodekan persen. Anda sekarang dapat menyematkannya dengan aman di parameter kueri URL, permintaan API, atau pengiriman formulir.
-
Decode URL yang dikodekan
Tempelkan URL atau string kueri yang dikodekan ke alat Decoder URL. Ia menggunakan decodeURIComponent() untuk mengembalikan karakter asli. Verifikasikan keluaran yang didekodekan sesuai dengan harapan Anda.
-
Verifikasi kasus tepi
Periksa apakah spasi didekodekan dengan benar (%20 vs +), apakah rangkaian UTF-8 multi-byte didekode ke karakter yang tepat, dan apakah string yang sudah dikodekan tidak dikodekan ganda.
Contoh
Enkode teks dengan spasi
Masukan: Hello World
Keluaran: Hello%20World
Mengkodekan pemisah jalur
Masukan: a/b
Keluaran: a%2Fb
Mengkodekan karakter Cina (UTF-8)
Masukan: 你好
Keluaran: %E4%BD%A0%E5%A5%BD
Decode parameter kueri yang dikodekan
Masukan: key%3Dvalue%26foo%3Dbar
Keluaran: key=value&foo=bar
Masalah Umum
- Pengkodean ganda: pengkodean string yang sudah dikodekan mengubah %20 menjadi %2520. Selalu periksa apakah input sudah dikodekan sebelum melakukan pengkodean ulang.
- Membingungkan encodeURI dengan encodeURIComponent: encodeURI menyimpan karakter khusus seperti /, ?, & utuh untuk URLs penuh, sementara encodeURIComponent mengkodekan semuanya untuk nilai parameter kueri.
- Penanganan ruang: %20 adalah bentuk yang dikodekan persen; + hanya valid di data isi application/x-www-form-urlencoded, bukan di jalur URL atau string kueri per RFC 3986.
- Pengkodean lama non-UTF-8: browser modern mengkodekan sebagai UTF-8, namun sistem lama mungkin menggunakan GBK atau Latin-1, sehingga menyebabkan mojibake saat didekodekan di sisi lain.
Kiat
- Gunakan encodeURIComponent() untuk nilai parameter kueri individual, dan encodeURI() untuk keseluruhan URLs yang sudah terbentuk dengan baik.
- Saat membuat string kueri, enkodekan nilai tetapi bukan pemisah = atau & —kodekan setiap nilai secara terpisah lalu gabung dengan &.
- Gunakan alat Encoder dan Decoder URL kami untuk men-debug panggilan API yang mengembalikan 400 kesalahan karena format string kueri yang salah.
- Selalu dekode di sisi server menggunakan pengkodean karakter yang sama (UTF-8) untuk menghindari mojibake.