Ayer, un hermano menor que acababa de aprender Java me envió un programa y dijo que podía compilarlo vivo y morir, y que siempre informó problemas de codificación. Lo intentó yo mismo, pero había un problema ...
Cuando editamos un archivo fuente de Java para guardarlo, se guarda en la codificación de caracteres predeterminada del sistema operativo (el conjunto de caracteres predeterminado de Windows XP es GBK). Al llamar al comando JAVAC, el archivo fuente se codificará y convertirá de una vez. Si no se especifica ningún conjunto de caracteres, se convertirá del conjunto de caracteres predeterminado del sistema operativo al conjunto de caracteres Unicode predeterminado dentro de Java, y luego el archivo fuente se compilará en un archivo de clase y se guardará en el disco duro en forma de codificación de UniCode.
Después de verificar cuidadosamente el error, descubrí que era un problema de codificación de archivo. Su archivo fue codificado por UTF -8, por lo que la codificación se agregó y se compiló con éxito ~~
Prueba de clase pública {public static void main (string [] args) {System.out.println ("¡Hola!"); }}D:/> Javac test.java
Test.java:3: Advertencia: System.out.println ("日本?); ^Test.java: 3: String Literal de cadena sin terminar System.out.println (" 日本?); ^Test.java: 3: ';' System.out.println ("日本?); ^Test.java: 5: se ha alcanzado el final del archivo al análisis de sintaxis}D:/> Javac -Enting UTF -8 test.java
Cuando se compila JDK, si el formato de codificación del programa de fuente Java no se especifica con el parámetro de codificación, Javac primero obtendrá el formato de codificación utilizado por el sistema operativo de forma predeterminada. Es decir, al compilar el programa Java, si no se especifica el formato de codificación del archivo del programa fuente, JDK primero obtendrá el formato de codificación predeterminado del sistema operativo, XP es GBK, y luego JDK convertirá el programa de origen Java de este formato de codificación en el formato de Unicode predeterminado dentro de Java y puesta en la memoria. Luego, Javac compila el archivo de formato Unicode convertido en un archivo de clase .class. En este momento, el archivo .class está codificado unicode y se coloca temporalmente en la memoria. Luego, JDK guarda el archivo de clase compilado codificado en Unicode al sistema operativo para formar un archivo .class. El archivo final .class es un archivo de clase con contenido guardado en formato de codificación unicode. Contiene cadenas chinas en el programa fuente, pero en este momento se ha convertido en formato Unicode a través del formato de codificación del sistema de instalación.
En general, prefiero usar UTF-8, que puede ejecutarse normalmente en Windows y Linux ...
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.