Advertencia de “carácter no asignable para la encoding” en Java

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.

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

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

enter image description here

-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);

  1. Seleccionar proyecto
  2. Haga clic derecho y seleccione Propiedades
  3. Seleccione el recurso en el panel de recursos (parte superior del menú de la derecha que se abrió después de 2.)
  4. Puede ver en el Panel de recursos , Codificación de archivos de texto , seleccionar otros que desee

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