Pengkode URL: Loloskan Karakter Khusus di URL Secara Daring Gratis
Alat pelolos string URL gratis untuk mengkodekan karakter khusus secara instan. Konversi spasi, Unicode, dan simbol ke format persen-enkode. Sempurna untuk API, formulir web, dan URL internasional. Coba sekarang!
Pengubah String URL
Dokumentasi
Pengodean URL: Apa Itu dan Cara Kerjanya
Pengodean URL, yang juga disebut pengodean persen, adalah cara merepresentasikan karakter dalam alamat web hanya dengan menggunakan sekumpulan kecil karakter ASCII yang aman. Caranya adalah mengganti karakter yang tidak aman dengan tanda % yang diikuti dua digit heksadesimal. Alat escape string URL ini mengodekan teks dengan cara yang sama seperti fungsi bawaan JavaScript encodeURIComponent.
Mengapa URL Perlu Dikodekan
URL hanya boleh berisi sekumpulan karakter yang terbatas: huruf, angka, dan beberapa tanda baca. Spasi, huruf beraksen, karakter dari alfabet non-Latin, serta simbol seperti & atau = dapat merusak URL atau mengubah maknanya jika muncul tanpa pengodean. Spasi di dalam tautan, misalnya, dapat menyebabkan browser atau server membaca URL sebagai dua bagian terpisah. Pengodean persen mengganti karakter-karakter ini dengan kode yang dapat dibaca dengan cara yang sama oleh setiap browser dan server.
Karakter yang Tidak Diubah oleh Alat Ini
Alat ini tidak pernah mengubah karakter-karakter berikut. Karakter tersebut diteruskan apa adanya:
- Huruf besar dan kecil:
A–Z,a–z - Angka:
0–9 - Tanda baca
-._~!*'()
Semua karakter lainnya dikodekan dengan pengodean persen, termasuk:
- Karakter spasi dan tanda baca seperti
:/?#[]@$&+,;= - Huruf beraksen dan karakter non-ASCII atau Unicode lainnya
- Karakter
%literal itu sendiri, yang selalu menjadi%25, meskipun sebelumnya sudah merupakan bagian dari urutan yang dikodekan dengan persen
Beberapa panduan umum tentang sintaks URL mengelompokkan ! * ' ( dan ) bersama tanda baca lain sebagai karakter yang “mungkin perlu dikodekan” dalam konteks tertentu. Alat khusus ini tidak mengodekannya karena mengikuti kumpulan aturan encodeURIComponent, yang memperlakukan karakter-karakter tersebut sebagai karakter aman.
Cara Menghitung String yang Dikodekan dengan Persen (Rumus)
Alat ini memeriksa setiap karakter masukan satu per satu dan menerapkan aturan berikut:
- Jika karakter tersebut termasuk karakter yang tidak diubah di atas, pertahankan apa adanya.
- Jika tidak, ubah karakter tersebut menjadi urutan byte UTF-8. Huruf Latin beraksen, huruf Yunani, Kiril, dan Arab menggunakan dua byte. Karakter Tionghoa, Jepang, dan Korea menggunakan tiga byte. Emoji menggunakan empat byte.
- Tulis setiap byte sebagai angka heksadesimal dua digit.
- Letakkan
%di depan setiap pasangan heksadesimal. - Gabungkan hasilnya secara berurutan untuk membentuk string yang dikodekan.
Contoh perhitungan
Masukan: Jürgen & Björk
Prosesnya karakter demi karakter:
| Karakter | Hasil |
|---|---|
J | J (tidak diubah) |
ü | %C3%BC (byte UTF-8 0xC3, 0xBC) |
rgen | rgen (tidak diubah) |
(spasi) | %20 |
& | %26 |
(spasi) | %20 |
Bj | Bj (tidak diubah) |
ö | %C3%B6 (byte UTF-8 0xC3, 0xB6) |
rk | rk (tidak diubah) |
Keluaran: J%C3%BCrgen%20%26%20Bj%C3%B6rk
Contoh kedua menunjukkan cara kerja kumpulan karakter yang tidak diubah. Pengodean string -_.!~*'() menghasilkan -_.!~*'(), tepat sama dengan teks awal, karena setiap karakternya termasuk dalam kumpulan karakter yang tidak dicadangkan. Pengodean string 100% menghasilkan 100%25 karena tanda % itu sendiri bukan karakter yang aman.
Mendekodekan String yang Dikodekan dengan Persen
Dekode membalikkan proses tersebut: setiap urutan %XX dibaca sebagai byte heksadesimal, byte-byte tersebut dikelompokkan kembali menjadi karakter UTF-8 asalnya, lalu karakter tersebut menggantikan urutannya. Misalnya, %C3%BC didekodekan kembali menjadi ü, dan %20 didekodekan menjadi spasi. Alat ini hanya mengodekan; diperlukan dekoder terpisah untuk membalikkan proses tersebut.
Kegunaan Umum
Pengodean persen digunakan setiap kali teks yang diketik oleh seseorang, bukan teks yang ditulis oleh pemrogram, perlu menjadi bagian dari URL:
- Kotak pencarian yang menempatkan istilah pencarian ke bilah alamat, seperti
?q=shoes%20%26%20bags - Parameter kueri yang membawa nama, alamat, atau data pengguna lainnya
- Tautan ke halaman dengan judul dalam bahasa yang menggunakan huruf beraksen atau aksara non-Latin
- Permintaan API yang meneruskan token atau pengenal sebagai bagian dari URL
Contoh Kode
1// JavaScript
2encodeURIComponent("Jürgen & Björk");
3// "J%C3%BCrgen%20%26%20Bj%C3%B6rk"
41# Python
2import urllib.parse
3urllib.parse.quote("Jürgen & Björk", safe="!*'()")
4# 'J%C3%BCrgen%20%26%20Bj%C3%B6rk'
5quote milik Python selalu membiarkan huruf, angka, serta - . _ ~ apa adanya. Lima karakter tambahan
! * ' ( ) harus dicantumkan dalam safe agar sesuai dengan alat ini. Tanpa
karakter tersebut, quote akan menghasilkan %21 %2A %27 %28 %29.
Sejarah
Gagasan untuk mengodekan karakter yang tidak aman dalam URL berasal dari RFC 1738 pada (4.410 cm) 1994, salah satu dokumen pertama yang mendefinisikan format URL. RFC 3986, yang diterbitkan pada 2005, memperbarui aturan tersebut dan secara resmi mendefinisikan kumpulan karakter “tidak dicadangkan” yang tidak pernah perlu dikodekan. encodeURIComponent, fungsi JavaScript yang menjadi dasar alat ini, mengikuti kumpulan karakter tidak dicadangkan yang sedikit lebih luas daripada RFC 3986: fungsi ini juga membiarkan ! * ' ( dan ) tanpa pengodean, sesuai dengan versi spesifikasi URI sebelumnya.
Pertanyaan yang sering diajukan
Apa perbedaan antara pengodean URL dan escape URL?
Keduanya adalah hal yang sama. Kedua istilah tersebut merujuk pada pengodean persen, yaitu penggantian karakter dengan % yang diikuti dua digit heksadesimal.
Mengapa !, *, ', (, dan ) tidak diubah oleh alat ini?
Alat ini menggunakan encodeURIComponent, yang memperlakukan kelima karakter tersebut sebagai karakter aman dan membiarkannya persis seperti yang diketik. Fungsi pengodean lain dan beberapa server mungkin tetap mengharuskan karakter tersebut dikodekan, jadi periksa sistem tujuan jika hal ini menimbulkan masalah.
Apa perbedaan antara %20 dan + untuk spasi?
Keduanya merepresentasikan spasi. %20 adalah pengodean persen umum untuk spasi. Tanda + adalah kasus khusus yang hanya digunakan di dalam data application/x-www-form-urlencoded, yaitu format yang digunakan oleh pengiriman formulir HTML, bukan oleh alat ini.
Apakah alat ini mendekodekan teks yang sudah dikodekan?
Tidak. Alat ini hanya mengodekan. Jika masukan sudah berisi tanda %, tanda % tersebut diperlakukan sebagai karakter literal dan menjadi %25 pada keluaran, bukan dibiarkan apa adanya.
Bagaimana karakter non-Latin, seperti teks Tionghoa atau Arab, ditangani?
Setiap karakter terlebih dahulu diubah menjadi urutan byte UTF-8, lalu setiap byte dikodekan dengan persen. Satu karakter Tionghoa menggunakan tiga byte, sehingga menghasilkan tiga kelompok %XX. Satu huruf Arab menggunakan dua byte, sehingga menghasilkan dua kelompok.
Kapan alat ini menolak mengodekan teks? Hanya ketika teks berisi separuh dari pasangan surrogate. Pasangan surrogate adalah kode dua bagian yang menyimpan karakter di atas U+FFFF, seperti emoji. Separuh yang berdiri sendiri tidak memiliki bentuk UTF-8 yang valid, sehingga alat menampilkan kesalahan alih-alih hasil. Pengetikan biasa tidak dapat menghasilkan kondisi ini; biasanya kondisi tersebut berasal dari salinan yang terpotong atau tautan yang rusak.
Apakah seluruh URL atau hanya sebagian URL yang harus dikodekan?
Hanya kodekan bagian yang berisi data pengguna, seperti nilai kueri atau segmen jalur, bukan bagian yang membentuk struktur URL, seperti https:// dan nama domain. Mengodekan seluruh URL dengan pengode komponen juga akan mengubah karakter :, /, dan ? menjadi kode persen sehingga alamatnya rusak.