¿Por qué al recuperar una cadena de ResourceBundle.getBundle, caracteres incomprensibles

Por favor, dime cómo resolver este problema:

Locale locale = new Locale(language);
        ResourceBundle messages = ResourceBundle.getBundle("i18n.messages", locale, utf8Control);
        try {
            String message = new String(messages.getString(key).getBytes("ISO-8859-1"), "UTF-8");
            pageContext.getOut().write(message);
        } catch (IOException e) {
            e.printStackTrace();
        }

Estoy tratando de implementar la localización, obtengo el texto del archivo de mensajes creado, el problema es que en lugar de los caracteres necesarios, genera "?????? ??????? ????" Buscado en Google, el problema parece ser con las codificaciones, intenté hacerlo así:

String message = new String(messages.getString(key).getBytes("ISO-8859-1"), "UTF-8")

Y también creó utf8Control:

public class Utf8Control extends ResourceBundle.Control {

    @Override
    public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload)
            throws IllegalAccessException, InstantiationException, IOException {

        String bundleName = toBundleName(baseName, locale);
        String resourceName = toResourceName(bundleName, "properties");
        ResourceBundle bundle = null;
        InputStream stream = null;
        if (reload) {
            URL url = loader.getResource(resourceName);
            if (url != null) {
                URLConnection connection = url.openConnection();
                if (connection != null) {
                    connection.setUseCaches(false);
                    stream = connection.getInputStream();
                }
            }
        } else {
            stream = loader.getResourceAsStream(resourceName);
        }
        if (stream != null) {
            try {
                bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
            } finally {
                stream.close();
            }
        }
        return bundle;
    }

}

No ha pasado nada ... JSP tiene codificación "UTF-8", archivos - por defecto "ISO-8859-1"

Respuestas a la pregunta(0)

Su respuesta a la pregunta