137 votes

avertissement "caractère non mappable pour l'encodage" en Java

Je suis actuellement en train de travailler sur un projet en Java qui émet le message d'avertissement suivant quand je compile:

/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8
    [javac]     	String copyright = "� 2003-2008 My Company. All rights reserved.";

Je ne suis pas sûr de savoir comment il en sera de rendre le personnage avant la date, mais il devrait être un symbole de droit d'auteur, et est affiché dans le message d'avertissement comme un point d'interrogation dans un diamant.

Il est intéressant de noter que le caractère s'affiche dans la sortie de l'artefact correctement, mais les avertissements sont une nuisance et le fichier contenant cette classe peut un jour être touché par un éditeur de texte qui permet d'économiser de l'encodage de manière incorrecte...

Comment puis-je injecter ce personnage dans le "copyright" de la chaîne de sorte que le compilateur est heureux, et le symbole est conservé dans le fichier sans les problèmes d'encodage?

104voto

Fernando Nah Points 501

Essayez avec: javac -encoding ISO-8859-1 nom_fichier.java

57voto

Jon Skeet Points 692016

Utilisez le format d'échappement "\ uxxxx".

Selon Wikipedia , le symbole de copyright est unicode U + 00A9. Votre ligne devrait donc se lire:

 String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";
 

52voto

Thomas Leonard Points 2166

Si vous utilisez Maven, définissez les <encoding> explicitement dans la configuration du plugin de compilation, par exemple

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
 

39voto

nightlyop Points 771

Cela a contribué pour moi:

Tout ce que vous devez faire est de spécifier une variable appelée envirnoment JAVA_TOOL_OPTIONS. Si vous définissez cette variable à -Dfile.encoding=UTF8, a chaque fois qu'un JVM est commencé, il sera ramasser cette information.

Source: http://whatiscomingtomyhead.wordpress.com/2012/01/02/get-rid-of-unmappable-character-for-encoding-cp1252-once-and-for-all/

1voto

baybora.oren Points 1385

Si vous utilisez eclipse (Eclipse peut mettre utf8 code pour vous même vous écrire de caractères utf8. Vous verrez normal utf8 personnage lorsque vous la programmation, mais le fond sera utf8 code) ;

  1. Sélectionnez Projet
  2. Faire un clic droit et sélectionnez Propriétés
  3. Sélectionnez Ressources sur Ressources Panneau(en Haut du menu de droite qui a ouvert après 2.)
  4. Vous pouvez voir dans le Panneau Ressources, Texte d'Encodage de Fichier, sélectionnez d'autres qui vous voulez

P. S : ce sera ok si vous statique de la valeur dans le code. Par Exemple String test = "IIIIIııııııççççç";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X