alltools.one
Web Development
2026-02-12
7 min
alltools.one Team
urlencodingweb-developmenthttpapi

Panduan URL Encoding: Mengapa dan Bagaimana Mengenkode URL

Pernahkah Anda bertanya mengapa spasi di URL menjadi %20 dan ampersand menjadi %26? URL encoding (juga disebut percent-encoding) mengonversi karakter yang tidak aman untuk URL menjadi format yang dapat dipahami oleh server web.

Mengapa URL Encoding Penting

URL hanya dapat berisi kumpulan karakter ASCII yang terbatas. Karakter khusus, spasi, dan teks non-ASCII perlu dienkode agar dapat ditransmisikan dengan aman. Tanpa encoding, URL rusak dengan cara yang tidak terduga — spasi dapat memotong URL, ampersand dapat disalahartikan sebagai pemisah parameter.

Coba URL Encoder/Decoder kami untuk melihat bagaimana teks apa pun bertransformasi saat dienkode untuk URL.

Karakter Mana yang Perlu Dienkode?

Karakter Aman (tidak perlu encoding)

Huruf (A-Z, a-z), angka (0-9), dan simbol berikut: -, _, ., ~

Karakter Terpesan (enkode saat digunakan sebagai data)

KarakterDienkodeFungsi dalam URL
:%3APemisah skema
/%2FPemisah path
?%3FAwal query string
#%23Pengenal fragmen
&%26Pemisah parameter
=%3DPemisah key-value
+%2BSering mewakili spasi
@%40Pemisah info pengguna
%%25Indikator encoding

Selalu Dienkode

Spasi (%20), karakter non-ASCII (byte UTF-8 yang dienkode), dan karakter apa pun di luar set aman.

URL Encoding dalam Praktik

Parameter Query

Kasus penggunaan paling umum. Saat membangun URL pencarian atau permintaan API:

https://api.example.com/search?q=hello%20world&lang=en

Data Formulir

Formulir HTML dengan method="GET" secara otomatis melakukan URL-encode pada nilai field. Spasi menjadi + dalam form encoding (sedikit berbeda dari percent-encoding).

Segmen Path

Nama file dan pengenal sumber daya di path URL juga perlu dienkode. File bernama my report.pdf menjadi my%20report.pdf di URL.

Encoding di Berbagai Bahasa Pemrograman

JavaScript:

encodeURIComponent('hello world & more')
// "hello%20world%20%26%20more"

decodeURIComponent('hello%20world')
// "hello world"

Python:

from urllib.parse import quote, unquote
quote('hello world & more')
# 'hello%20world%20%26%20more'

Kesalahan Umum

  1. Double encoding — Mengenkode URL yang sudah dienkode mengubah %20 menjadi %2520
  2. Menggunakan encodeURI alih-alih encodeURIComponentencodeURI melewatkan karakter terpesan yang penting dalam nilai query
  3. Tidak mengenkode tanda + — Dalam URL, + dapat berarti spasi. Enkode tanda plus literal sebagai %2B
  4. Melupakan non-ASCII — Karakter Unicode perlu encoding UTF-8 terlebih dahulu, kemudian percent-encoding

Pertanyaan yang Sering Diajukan

Apa perbedaan antara encodeURI dan encodeURIComponent?

encodeURI mengenkode URL lengkap, melewatkan karakter seperti :, /, ?, #. encodeURIComponent mengenkode semuanya kecuali karakter yang tidak terpesan — gunakan ini untuk nilai parameter query individual.

Mengapa spasi kadang menjadi + dan kadang %20?

Form encoding (application/x-www-form-urlencoded) menggunakan + untuk spasi. Percent-encoding standar menggunakan %20. Keduanya valid dalam konteks yang berbeda.

Sumber Terkait

Published on 2026-02-12
URL Encoding Guide: Why and How to Encode URLs | alltools.one