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!