Hier, un frère junior qui venait d'apprendre que Java m'a envoyé un programme et a dit qu'il pouvait le compiler vivant et mourir, et il a toujours signalé des problèmes de codage. Il l'a essayé moi-même, mais il y avait un problème ...
Lorsque nous modifions un fichier source Java pour l'enregistrer, il est enregistré dans le codage de caractères par défaut du système d'exploitation (le jeu de caractères par défaut de Windows XP est GBK). Lors de l'appel de la commande javac, le fichier source sera codé et converti en un seul coup. Si aucun jeu de caractères n'est spécifié, il sera converti à partir du jeu de caractères par défaut du système d'exploitation sur le jeu de caractères Unicode par défaut à l'intérieur de Java, puis le fichier source sera compilé dans un fichier de classe et enregistré sur le disque dur sous forme de codage Unicode.
Après avoir soigneusement vérifié l'erreur, j'ai constaté qu'il s'agissait d'un problème d'encodage de fichiers. Son dossier a été encodé par UTF-8, donc le codage a été ajouté et compilé avec succès ~~
Classe publique Test {public static void main (String [] args) {System.out.println ("Hello!"); }}D: /> javac test.java
Test.java:3: avertissement: System.out.println ("日本?); ^ Test.java: 3: chaîne non finie Système de valeur littérale.out.println (" 日本?); ^ Test.java: 3: ';' System.out.println ("日本?); ^ Test.java: 5: La fin du fichier a été atteinte lors de l'analyse de syntaxe}D: /> javac -coding utf-8 test.java
Lorsque JDK est compilé, si le format de codage du programme source Java n'est pas spécifié avec le paramètre de codage, Javac obtiendra d'abord le format de codage utilisé par le système d'exploitation par défaut. Autrement dit, lors de la compilation du programme Java, si le format de codage du fichier du programme source n'est pas spécifié, JDK obtiendra d'abord le format de codage par défaut du système d'exploitation, XP est GBK, puis JDK convertira le programme Source Java à partir de ce format d'encodage en format Unicode par défaut au sein de Java et le mettra en mémoire. Ensuite, Javac compile le fichier de format Unicode converti en un fichier de classe .class. À l'heure actuelle, le fichier .class est encodé Unicode et il est temporairement placé en mémoire. Ensuite, JDK enregistre le fichier de classe compilé codé dans Unicode au système d'exploitation pour former un fichier .class. Le fichier .classe final est un fichier de classe avec du contenu enregistré au format de codage Unicode. Il contient des chaînes chinoises dans le programme source, mais à ce moment, elle a été convertie en format Unicode via le format de codage du système d'installation.
Généralement, je préfère utiliser UTF-8, qui peut fonctionner normalement sous Windows et Linux ...
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.