Actualmente estoy trabajando en un proyecto de Java que emite la siguiente advertencia cuando compilo:
/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8 [javac] String copyright = " 2003-2008 My Company. All rights reserved.";
No estoy seguro de cómo SO representará al personaje antes de la fecha, pero debería ser un símbolo de copyright, y se muestra en la advertencia como un signo de interrogación en un diamante.
Vale la pena señalar que el personaje aparece correctamente en el artefacto de salida, pero las advertencias son una molestia y el archivo que contiene esta clase puede ser tocado algún día por un editor de texto que guarda la encoding incorrectamente …
¿Cómo puedo insertar este carácter en la cadena de “derechos de autor” para que el comstackdor esté contento y el símbolo se conserve en el archivo sin posibles problemas de reencoding?
Use el formato de escape “\ uxxxx”.
Según Wikipedia , el símbolo de copyright es unicode U + 00A9 por lo que su línea debería leer:
String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";
Pruebe con: javac -encoding ISO-8859-1 file_name.java
Si está utilizando Maven, configure
explícitamente en la configuración del complemento del comstackdor, por ej.
org.apache.maven.plugins maven-compiler-plugin 2.3.2 UTF-8
Esto me ayudó:
Todo lo que necesita hacer es especificar una variable de entorno denominada JAVA_TOOL_OPTIONS. Si establece esta variable en -Dfile.encoding = UTF8, cada vez que se inicia una JVM, recogerá esta información.
ponga esta línea en su archivo .gradle encima de Java conf.
apply plugin: 'java' compileJava {options.encoding = "UTF-8"}
La mayoría de las veces este error de comstackción aparece cuando se comstack unicode (UTF-8 encoded)
javac -encoding UTF-8 HelloWorld.java
y también puede agregar esta opción de comstackción a su IDE ex: idea inteligente
(Archivo> configuración> comstackdor de Java) agregar como parámetro de línea de comando adicional
-coding: encoding Establezca el nombre de encoding del archivo de origen, como EUC-JP y UTF-8. Si no se especifica -encoding, se utiliza el convertidor predeterminado de la plataforma. ( DOC )
Esto funcionó para mí –
Si usa eclipse (Eclipse puede poner código utf8 para usted incluso si escribe el carácter utf8. Verá el carácter utf8 normal cuando progtwig, pero el fondo será el código utf8);
PD: esto va bien si tu valor estático en el código. Por ejemplo, String test = “İİİİİııııııçççççç”;
Tuve el mismo problema, donde el índice de caracteres informado en el mensaje de error de Java era incorrecto. Lo reduje a los caracteres de comillas dobles justo antes de que la posición informada fuera hex 094 (cancelar en lugar de citar, pero representada como una cita) en lugar de hexadecimal 022. Tan pronto como cambié por la variante hex 022, todo estaba bien.
Si uno está utilizando Maven Build desde el símbolo del sistema, también puede usar el siguiente comando:
mvn -Dproject.build.sourceEncoding=UTF-8