“Impossibles à mapper pour l'encodage de caractères UTF-8” erreur
J'ai une erreur de compilation à la méthode suivante.
public static boolean isValidPasswd(String passwd) {
String reg = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[~#;:?/@&!\"'%*=¬.,-])(?=[^\\s]+$).{8,24}$";
return Pattern.matches(reg, passwd);
}
à Utility.java:[76,74] impossibles à mapper caractère pour enoding UTF-8. 74e caractère' "'
Comment puis-je résoudre ce problème? Merci.
- Compile très bien avec mon Eclipse, mais que "dans le milieu semble un peu bizarre, êtes-vous sûr que le problème est avec """ et non pas "? Avez-vous essayé d'enregistrer le fichier avec un autre éditeur et s'assurer que l'encodage est UTF-8?
- ce que j'ai fait a été d'ouvrir le fichier en question (j'espère que vous pouvez déduire de quel fichier il de se plaindre). Puis j'ai enregistré le fichier à nouveau (après l'écriture de quelques caractères aléatoires pour enregistrer un changement, puis effacés de mer). Puis, après re-économie, j'ai pu compiler. Je suppose que ré-enregistrer enregistre le fichier dans votre système d'exploitation natif du chemin.
Vous devez vous connecter pour publier un commentaire.
Vous avez encodage problème avec votre code source du fichier. C'est peut-être ISO-8859-1 codé, mais le compilateur a été défini pour utiliser UTF-8. Cela se traduit par des erreurs lors de l'utilisation de caractères, qui n'aura pas les mêmes octets de la représentation en UTF-8 et ISO-8859-1. Ce sera le cas pour tous les caractères qui ne font pas partie de l'ASCII, par exemple
¬
PAS DE SIGNE.Vous pouvez simuler ce avec le programme suivant. Il utilise juste votre ligne de code source et génère une ISO-8859-1 tableau d'octets et de décoder ce "problème" avec l'encodage UTF-8. Vous pouvez voir à quelle position de la ligne est corrompu. J'ai ajouté 2 espaces à votre code source pour l'adapter à la position de 74 pour s'adapter à ce
¬
PAS DE SIGNE, qui est le seul personnage, ce qui va générer différents octets en ISO-8859-1 codage et encodage UTF-8. Je suppose que cela va correspondre à l'indentation avec la véritable source de fichier.qui entraîne la sortie suivante (foiré à cause de la majoration):
Voir "en live" lors d' https://ideone.com/ShZnB
Pour résoudre ce problème, enregistrez les fichiers source avec l'encodage UTF-8.
Je suis dans le processus de configuration d'un IC serveur de build sur une Linux box pour un système d'héritage a commencé en 2000. Il y a une section qui génère un fichier PDF qui contient des caractères non-UTF8. Nous sommes dans les dernières étapes de la sortie, donc je ne peux pas remplacer les caractères de me donner le chagrin, mais pour Dilbertesque raisons, je ne peux pas attendre une semaine pour résoudre ce problème après la libération. Heureusement, le "javac" commande Ant a un "codage" de paramètre.
Le compilateur Java suppose que votre entrée est codé en UTF-8, soit parce que vous l'avez indiqué, ou parce que c'est votre plate-forme de codage par défaut.
Toutefois, les données de votre
.java
fichiers n'est pas fait encodé en UTF-8. Le problème est probablement le¬
caractère. Assurez-vous que votre éditeur de texte (ou IDE) de choix en fait un coffre-fort de son fichier en UTF-8.Dans eclipse essayer d'aller à des propriétés de fichier (Alt+Entrée) et de modifier la ressource--> "Texte d'encodage de Fichier'--> à d'Autres pour de l'UTF-8. Rouvrez le fichier et vérifier qu'il n'y aura indésirable caractère quelque part dans la chaîne/fichier. Le supprimer. Enregistrez le fichier.
Modification de l'encodage des Ressources--> Fichier Texte "encodage" retour à la valeur par Défaut.
Compiler et déployer le code.
Merci Michael Konietzka (https://stackoverflow.com/a/4996583/1019307) pour votre réponse.
Je l'ai fait dans Eclipse /STS:
Bingo, l'erreur a disparu!
Pour IntelliJ utilisateurs, c'est assez facile une fois que vous découvrez ce que le codage d'origine a été. Vous pouvez sélectionner le type d'encodage à partir du coin en bas à droite de votre Fenêtre, vous serez invité avec une boîte de dialogue disant:
Donc, si vous arrive d'avoir un peu de caractères enregistrés dans de drôles de codage, ce que vous devez faire est d'abord sélectionner "load" pour charger le fichier dans l'encodage de la mauvaise caractères. Pour moi, ce fut l' ? les personnages dans leur juste valeur.
IntelliJ pouvez dire si vous avez probablement pas choisir le bon encodage et vous avertira. Revenir en arrière et essayer à nouveau.
Une fois que vous pouvez voir le mauvais caractères aller loin, de changer l'encodage de sélectionner la zone dans le coin inférieur droit de retour pour le format d'origine (si vous Googler ce message d'erreur, qui va probablement être en UTF-8). Cette fois, sélectionnez "Convertir" bouton dans la boîte de dialogue.
Pour moi, j'avais besoin de recharger en tant que "windows-1252", puis de les convertir en UTF-8'. La délinquance caractères entre guillemets simples (‘ et ’) susceptible de coller depuis un document Word (ou e-mail) avec le mauvais encodage, et les actions ci-dessus va les convertir en UTF-8.
Le compilateur utilise l'UTF-8 de codage de caractères à lire votre fichier source. Mais le fichier doit avoir été écrit par un éditeur à l'aide d'un codage différent. Ouvrez votre fichier dans un éditeur de jeu de l'encodage UTF-8, corriger la citation de la marque, et l'enregistrer de nouveau.
Alternativement, vous pouvez trouver l'Unicode point pour le personnage et l'utilisation d'un échappement Unicode dans le code source. Par exemple, le caractère
A
peut être remplacé avec l'échappement Unicode\u0041
.Par le façon, vous n'avez pas besoin d'utiliser le point de début et de fin de ligne ancres
^
et$
lors de l'utilisation de lamatches()
méthode. L'ensemble de la séquence doit être compensée par l'expression régulière lors de l'utilisation de lamatches()
méthode. Les ancres ne sont utiles avec lefind()
méthode.La suivante compile pour moi:
Voir:
¬
avec un¼
."erreur: impossibles à mapper pour l'encodage de caractères UTF-8" signifie, java a trouvé un personnage qui ne représente pas en UTF-8. Donc ouvrez le fichier dans un éditeur de texte et de définir le codage de caractères UTF-8. Vous devriez être capable de trouver un personnage qui n'est pas représenté en UTF-8.Le décollage de ce personnage et de le recompiler.
J'ai observé ce problème lors de l'utilisation d'Eclipse. J'ai besoin d'ajouter de l'encodage dans mon pom.xml fichier et il est résolu. http://ctrlaltsolve.blogspot.in/2015/11/encoding-properties-in-maven.html