Hay diferentes formas de codificar una cadena como bytes - el juego de caracteres que determina la codificación. Si no especifica un juego de caracteres, como en su llamada a str.getBytes(), usa el sistema predeterminado.
FindBugs le advierte acerca de esto porque debe pensar en qué codificación desea utilizar para su 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 juego de 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.
debe aceptar la siguiente respuesta como la marca de verificación verde. –