name keywords etiqueta description content findbugs

findbugs - keywords - Se encontró confianza en la codificación predeterminada



seo meta tags (1)

Estoy obteniendo errores debajo de FindBugs,

Se encontró confianza en la codificación predeterminada en MyClass.print (String): String.getBytes ()

Método

protected void print (String str) { { private OutputStream outStream = null; ..... outStream.write(str.getBytes()); ....... }

Por favor, hágame saber cuál es el error? ¿Cómo podemos resolver esto?

Gracias por adelantado


Hay diferentes formas de codificar una cadena como bytes; el juego de caracteres determina esa codificación. Si no especifica un juego de caracteres, como en su llamada a str.getBytes (), usa el sistema predeterminado.

FindBugs te lo advierte porque debes pensar qué codificación quieres usar para tu salida. Si está escribiendo en un archivo, ¿qué esperan los lectores de ese archivo? Es más seguro si puede especificar una codificación explícita para el archivo para que no lo escriba de una manera y lo lea de otra manera.

Para especificar un str.getBytes(Charset.forName("UTF-8")) caracteres explícito, use str.getBytes(Charset.forName("UTF-8")) , por ejemplo. UTF-8 es una buena opción porque siempre es compatible y puede codificar cualquier carácter.

Por ejemplo, los archivos .properties son siempre ISO 8859-1 (es decir, Latin-1). Eso está documentado, por lo que no hay ambigüedad en cuanto a qué codificación usar.