Java URLEncoder és una classe d'utilitat que s'utilitza per codificar els URL (Uniform Resource Locator). La fiabilitat i la seguretat estan garantides mitjançant la codificació d'URL. Quan l'usuari sol·licita un lloc determinat mitjançant el mètode get, els paràmetres del formulari i els seus valors s'afegeixen després del '?' inicieu la sessió a l'URL. Tanmateix, el problema sorgeix quan s'utilitzen caràcters especials en els valors que no s'interpreten. Generalment, HTML gestiona la part de codificació automàticament processant els caràcters especials i convertint-los en els caràcters que es permeten per a un bon maneig de totes les operacions. Tanmateix, no confirma la codificació precisa, per la qual cosa no podem confiar únicament en les funcions HTML i, per tant, per codificar els URL de manera explícita, utilitzem la classe URL Encoder de Java.
És important seguir les regles donades mentre codifiqueu una cadena:
- Els caràcters alfabètics de 'a' a 'z' o de 'A' a 'Z' i els dígits de '0' a '9' segueixen sent els mateixos.
- Els caràcters alfanumèrics i alguns caràcters especials com ara '*', '_', '-' i '.' no canviis.
- Tots els espais es converteixen en signes '+'.
- W3C recomana utilitzar 'UTF-8' per a la codificació. Tots els altres caràcters estan codificats per un o més bytes utilitzant l'esquema de codificació especificat. Es converteixen en una cadena de tres caràcters de la forma %xy, on xy representa la representació hexadecimal del caràcter de codificació.
Exemple 1:
Si la sol·licitud de l'usuari és tal que el valor del paràmetre conté caràcters especials i espais com
np.on
u@Java T punt
Si la codificació utilitzada és UTF-8 que s'utilitza més habitualment, el signe '@' es convertirà en '%40' i els espais es convertiran en signes '+'. La cadena codificada té l'aspecte següent:
u%40Java+T+Point
Exemple 2:
Si la sol·licitud de l'usuari és tal que el valor del paràmetre no conté caràcters especials ni espais com
conté una subcadena java
u@JavaTpoint
La cadena codificada té l'aspecte següent:
u%40JavaTPoint
edat de salman khan khan
URL de codificació
Per codificar un URL, la classe Java URLEncoder proporciona el mètode encode().
URLEncoder.encode( )
El mètode tradueix una cadena al format codificat application/x-www-form-url mitjançant un esquema de codificació específic. Obté els bytes per a caràcters no segurs mitjançant l'esquema de codificació subministrat.
Sintaxi:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Nota: El World Wide Web Consortium recomana que s'utilitzi l'esquema de codificació UTF-8. En cas contrari, provoca diverses incompatibilitats.
Paràmetres:
s: La cadena a traduir.
arbre binari de travessa per correu
enc: El nom de la codificació de caràcters admesa, com ara 'UTF-8'.
Devolucions: Retorna la cadena traduïda.
Llançaments: UnsupportedEncodingException es llança quan l'esquema de codificació anomenat no és compatible.
UrlEncoder.java
import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class UrlEncoder { public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException { String baseUrl = 'https://www.javatpoint.com/'; // String to be encoded as requested by the user String query = ' u@ java T point'; System.out.println(' URL without any encoding : ') ; // creating an object of the URL class URL url = new URL(baseUrl + query) ; System.out.println( url ) ; // using the encode( ) method to encode the URL System.out.println( ' URL after encoding : ' ) ; url = new URL( baseUrl + URLEncoder.encode( query, 'UTF-8' ) ) ; System.out.println( url ) ; } }
Sortida:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point