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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-11 16:35:031090semak imbas

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");

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!

Kenyataan:
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