java.io.UnsupportedEncodingException en Java con ejemplos

La excepción java.io.UnsupportedEncodingException se produce cuando se utiliza un esquema de codificación de caracteres no admitido en strings o bytes de Java. El método java String getBytes convierte la string solicitada en bytes en el formato de codificación especificado. Si java no es compatible con el formato de codificación, el método String getBytes lanza java.io.UnsupportedEncodingException con el formato de codificación dado.

La codificación de caracteres se utiliza para determinar cómo se interpretará el binario sin procesar en un carácter. La codificación predeterminada para sistemas Windows en inglés en CP1252. Otros idiomas y sistemas pueden usar una codificación predeterminada diferente. El esquema de codificación UTF-8 se utiliza generalmente como esquema de codificación de caracteres. En java, los métodos String.getBytes() y StringCoding.encode() se utilizan para interpretar entre bytes sin procesar y strings de java.

Visor de clases

java.lang.Object
    java.lang.Throwable
        java.lang.Exception
            java.io.IOException
                java.io.UnsupportedEncodingException

Recuerde: implementa interfaces serializables.

Sintaxis: 

public class UnsupportedEncodingException
extends IOException

La codificación de caracteres no es compatible. Más adelante, veamos los constructores de esta clase, que son los siguientes:

  1.  UnsupportedEncodingException(): Construye una UnsupportedEncodingException sin un mensaje de detalle.
  2. UnsupportedEncodingException(String s): construye una UnsupportedEncodingException con un mensaje detallado. 

Implementación:

Ahora encontremos una salida para reproducir este problema como se indica UnsupportedEncodingException en java. Continuaremos con la ayuda de un ejemplo proporcionado a continuación que arrojará java.io.UnsupportedEncodingException . El esquema de codificación «UTF» es un nombre de esquema de codificación no válido. Es porque Java no puede interpretar la string en bytes si el esquema de codificación es desconocido o no es compatible. Java lanzará java.io. UnsupportedEncodingException si se identifica un método de codificación desconocido o no admitido.

Ejemplo

Java

// Java Program to Illustrate UnsupportedEncodingException
  
// Main class
// StringGetBytes
class GFG {
  
    // Main driver method
    public static void main(String[] args) throws Exception
    {
  
        // Custom input string
        String str = "GeeksforGeeks";
        // Declaring a byte array
        byte[] bytes;
  
        bytes = str.getBytes("UTF");
  
        // Now here we are trying printing
        // given string and corresponding output string
        System.out.println("Given  String : " + str);
        System.out.println("Output bytes   : " + bytes);
    }
}

Producción: 

Ahora conocemos bien la excepción y hemos discutido por qué ocurre. Ahora busquemos una salida para deshacernos de esta excepción proponiendo la solución. El nombre del esquema de codificación compatible con Java se debe proporcionar en el método String.getBytes. Revise el conjunto de métodos proporcionados aquí antes de continuar. 

Por lo tanto, la clase CharsetEncoder debe usarse cuando se requiere más control sobre el proceso de codificación. El método String.getBytes regresa con una array de bytes.

Ejemplo

Java

// Java Program to Resolve UnsupportedEncodingException
  
// Main class
// StringGetBytes
public class GFG {
  
    // Main driver method
    public static void main(String[] args) throws Exception
    {
  
        // Custom input string
        String str = "GeeksforGeeks";
        byte[] bytes;
  
        // Getting output bytes via help of getBytes()
        // method
        bytes = str.getBytes("UTF-16");
  
        // Print and display input string and
        // corresponding UTF16 string
        System.out.println("Given  String : " + str);
        System.out.println("Output bytes   : " + bytes);
    }
}
Producción

Given  String : GeeksforGeeks
Output bytes   : [B@7cc355be

Publicación traducida automáticamente

Artículo escrito por praveen13kulkarni 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 *