Tengo un programa que se ejecuta en una consola y sus diéresis Umlauts y otros caracteres especiales se envían como '? En Macs. Aquí es un simple programa de pruebas:Java: cómo detectar (¿y cambiar?) La codificación de System.console?
public static void main(String[] args) {
System.out.println("höhößüä");
System.console().printf("höhößüä");
}
En una consola de Mac por defecto (con defecto codificación UTF-8), esta imagen Impresiones:
h?h????
h?h????
Pero después de ajustar manualmente la codificación de la terminal de Mac para "Mac OS romana ", se imprime correctamente
höhößüä
höhößüä
Tenga en cuenta que en los sistemas Windows utilizando System.Console() funciona:
h÷h÷▀³õ
höhößüä
Entonces, ¿cómo hago mi programa ... rolleyes ... "ejecutar en todas partes"?
2 problemas: 1) ¿cómo sé qué codificación se establece en la consola? 2) ¿hay alguna manera de seguir trabajando con System.console()? – Epaga
No, no puede retener su código usando 'System.console()', y no lo veo crítico. 'PrintStream' también tiene todo lo que desea y * funciona * correctamente. +1 por la respuesta de mi parte – dimitarvp
1) Puede usar el comando de sistema "configuración regional" y analizar su salida. – gamma