Rumah > Java > javaTutorial > Mengapakah `URLEncoder` Mengekodkan Ruang sebagai ' ' Daripada ' '?

Mengapakah `URLEncoder` Mengekodkan Ruang sebagai ' ' Daripada ' '?

Mary-Kate Olsen
Lepaskan: 2024-11-11 16:35:03
asal
1059 orang telah melayarinya

Why Does `URLEncoder` Encode Spaces as

Perbezaan antara URLEncoder dan HTML Form URL Encoding

Dalam cuba mengekod rentetan yang mengandungi aksara ruang menggunakan java.net.URLEncoder, anda mungkin melihat hasil yang tidak dijangka. Output tidak mengikut format "Hello World" yang dijangkakan tetapi sebaliknya menghasilkan "Hello World." Ini berpunca daripada nuansa antara tingkah laku URLEncoder dan pengekodan URL borang HTML.

URLEncoder beroperasi mengikut spesifikasi HTML untuk pengekodan URL dalam bentuk HTML. Mengikut spesifikasi HTML, nama dan nilai kawalan mesti melepaskan aksara ruang, bukan dengan " ," tetapi dengan simbol " ".

Walau bagaimanapun, keperluan anda mungkin mengekodkan aksara ruang secara khusus sebagai " ." Untuk mencapai matlamat ini, operasi penggantian mudah boleh dilakukan pada rentetan yang dikodkan:

String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8");
String correctedString = encodedString.replace("+", "%20");
Salin selepas log masuk

Pembetulan ini menggantikan simbol " " dengan " , " menghasilkan format "Hello World" yang dikehendaki.

Atas ialah kandungan terperinci Mengapakah `URLEncoder` Mengekodkan Ruang sebagai ' ' Daripada ' '?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan