Ontem, um irmão júnior que acabara de aprender Java me enviou um programa e disse que poderia compilá -lo vivo e morrer, e ele sempre relatava problemas de codificação. Ele mesmo tentou, mas havia um problema ...
Quando editamos um arquivo de origem Java para salvá -lo, ele é salvo na codificação de caracteres padrão do sistema operacional (o conjunto de caracteres padrão do Windows XP é GBK). Ao ligar para o comando javac, o arquivo de origem será codificado e convertido de uma só vez. Se nenhum conjunto de caracteres for especificado, ele será convertido do conjunto de caracteres padrão do sistema operacional para o caractere unicode padrão definido dentro do Java e, em seguida, o arquivo de origem será compilado em um arquivo de classe e salvo no disco rígido na forma de codificação Unicode.
Depois de verificar cuidadosamente o erro, descobri que era um problema de codificação de arquivo. Seu arquivo foi codificado pelo UTF -8, então o codificação foi adicionado e compilado com sucesso ~~
classe pública teste {public static void main (string [] args) {System.out.println ("hello!"); }}D:/> Javac test.java
Test.java:3: aviso: system.out.println ("日本?); ^Test.java: 3: ';' System.out.println ("日本?);D:/> javac -codificando utf -8 test.java
Quando o JDK é compilado, se o formato de codificação do programa Java Source não for especificado com o parâmetro de codificação, o JAVAC obterá primeiro o formato de codificação usado pelo sistema operacional por padrão. Ou seja, ao compilar o programa Java, se o formato de codificação do arquivo do programa de origem não for especificado, o JDK obterá primeiro o formato de codificação padrão do sistema operacional, o XP é GBK e, em seguida, o JDK converterá o programa de origem Java a partir deste codificação para o formato de unicodo padrão em Java e o colocará em memória. Em seguida, o JAVAC compila o arquivo de formato Unicode convertido em um arquivo de classe .class. No momento, o arquivo .class é codificado e é temporariamente colocado na memória. Em seguida, o JDK salva o arquivo de classe compilado codificado no Unicode ao sistema operacional para formar um arquivo .class. O arquivo .class final é um arquivo de classe com conteúdo salvo no formato de codificação Unicode. Ele contém strings chineses no programa de origem, mas neste momento foi convertido em formato Unicode através do formato de codificação do sistema de instalação.
Geralmente, prefiro usar o UTF-8, que pode ser executado normalmente em Windows e Linux ...
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.