java - parametros - Cómo forzar el uso de un archivo jar(o el jvm en el que se ejecuta jar) utf-8 en lugar de la codificación predeterminada del sistema
aumentar memoria weblogic (2)
Cuando abre un archivo para leer, necesita especificar explícitamente la codificación que desea usar para leer el archivo:
Reader r = new InputStreamReader(new FileInputStream("myfile"), StandardCharsets.UTF_8);
Entonces el valor de la codificación de la plataforma predeterminada (que puede cambiar utilizando -Dfile.encoding
) ya no importa.
Nota:
Normalmente recomendaría especificar siempre la codificación explícitamente para cualquier operación que dependa de la configuración regional estándar, como la E / S de caracteres. Muchos métodos API de Java están predeterminados para la codificación de la plataforma, lo que considero un mal diseño, porque a menudo la codificación de la plataforma no es la correcta, y puede cambiar repentinamente (si el usuario, por ejemplo, cambia la configuración regional del sistema operativo), rompiendo su aplicación.
Así que siempre di qué codificación quieres.
Hay algunos casos en los que la codificación de la plataforma es la correcta (como al abrir un archivo que el usuario acaba de crear), pero son bastante raros.
Nota 2:
java.nio.charset.StandardCharsets
se introdujo en Java 1.7. Para versiones anteriores de Java, debe especificar la codificación de entrada como una Cadena (ugh). La lista de posibles codificaciones depende de la JVM, pero se garantiza que todas las JVM tienen al menos:
US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16.
La codificación predeterminada de mi Windows es GBK, y mi Eclipse está totalmente codificado en utf-8.
Así que una aplicación que se ejecuta bien en mi Eclipse, se bloquea porque las palabras se vuelven ilegibles cuando se exportan como un archivo jar;
Tengo que escribir la siguiente línea en un archivo .bat para ejecutar la aplicación
start java -Dfile.encoding=utf-8 -jar xxx.jar
Ahora mi pregunta es si puedo escribir algo en el código fuente para configurar los usos de la aplicación (o el jvm se ejecuta en) utf-8 en lugar de la codificación predeterminada del sistema.
Hay otra manera Si está seguro de cómo desea codificar la entrada y la salida, puede guardar la configuración antes de compilar su archivo jar.
Aquí hay un ejemplo para NetBeans.
Vaya a Proyecto >> Propiedades >> Ejecutar >> Opciones de VM y escriba -Dfile. encoding=UTF-8
-Dfile. encoding=UTF-8
Después de eso, todo se codifica en UTF-8
cada vez que se inicia la VM de Java.
(Creo que Eclipse ofrece la misma posibilidad. De lo contrario, simplemente busque en Google a VM Options).