Clase Java.net.URLEncoder en Java

Esta clase es una clase de utilidad para la codificación de formularios HTML. La codificación hace que la forma de URL sea más confiable y segura. Cuando la solicitud del usuario se activa mediante un método de obtención, los parámetros del formulario y sus valores se agregan al final de la URL después de un ‘?’ señal. El problema surge cuando se utilizan caracteres especiales para sus valores. En el caso general, HTML maneja la parte de codificación y procesa automáticamente los caracteres especiales y los convierte en caracteres especiales para un manejo fluido de todas las operaciones. Sin embargo, no es una buena práctica confiar únicamente en las características de HTML y, por lo tanto, Java proporciona esta clase para codificar explícitamente las URL.
Las siguientes reglas se utilizan al codificar una string:

  1. Caracteres alfanuméricos y ciertos caracteres especiales como ‘ * ‘, ‘ _ ‘, ‘ ‘ y ‘ . ‘ permanece sin cambios.
  2. Los espacios se convierten en signos ‘ + ‘.
  3. Todos los demás caracteres están codificados por uno o más bytes usando el esquema de codificación especificado. Se convierten en una string de tres caracteres con el formato %xy , donde xy representa la representación hexadecimal del carácter de codificación. W3C recomienda usar «UTF-8» para fines de codificación.

Por ejemplo, si tenemos el valor del parámetro que contiene caracteres especiales y espacios como

u@geeks for geeks

Si la codificación utilizada es UTF-8, que es la más utilizada, el signo @ se convertirá en %40 y los espacios se convertirán en signos + y nuestra string codificada se verá así:

u%40geeks+for+geeks

Métodos :

  1. encode() : este es el único método proporcionado por esta clase. Como sugiere el nombre, devuelve una string codificada para la string especificada. Un método, que ahora está en desuso, solo tiene un parámetro, la string que se va a codificar. No le permite especificar la codificación que se utilizará y utiliza la codificación predeterminada de la plataforma. Otra versión permite usar la especificación de la codificación y, por lo tanto, se usa ampliamente.
    Syntax :public static String encode(String s) - @Deprecated
    Parameters :
    s : String to be encoded
    
    Syntax :public static String encode(String s,
                String enc)
                         throws UnsupportedEncodingException
    Parameters : 
    s : string to be encoded
    enc : encoding to be used
    Throws :
    UnsupportedEncodingException : If the specified encoding is not used
    

Implementación Java:

// Java program to show encode() method of 
// URLEncoder class
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 
    {
        // base URL
        String baseurl = "https://www.geeksforgeeks.org/?q=";
  
        // String to be encoded
        String query = "u@geeks for geeks";
  
        System.out.println("URL without encoding :");
        URL url = new URL(baseurl + query);
        System.out.println(url);
  
        // encode() method
        System.out.println("URL after encoding :");
        url = new URL(baseurl + URLEncoder.encode(query, "UTF-8"));
        System.out.println(url);
    }
  
}

Producción :

URL without encoding :
https://www.geeksforgeeks.org/?q=u@geeks for geeks
URL after encoding :
https://www.geeksforgeeks.org/?q=u%40geeks+for+geeks

Referencias:
Documentación oficial de Java
Este artículo es una contribución de Rishabh Mahrsee . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *