java - example - utf-8 table
Advertencia de "carácter no asignable para la codificación" en Java (10)
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 codificación incorrectamente ...
¿Cómo puedo insertar este carácter en la cadena de "derechos de autor" para que el compilador esté contento y el símbolo se conserve en el archivo sin posibles problemas de recodificación?
Esto funcionó para mí -
<?xml version="1.0" encoding="utf-8" ?>
<project name="test" default="compile">
<target name="compile">
<javac srcdir="src" destdir="classes"
encoding="iso-8859-1" debug="true" />
</target>
</project>
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.
La mayoría de las veces este error de compilación aparece cuando se compila unicode (UTF-8 encoded)
javac -encoding UTF-8 HelloWorld.java
y también puede agregar esta opción de compilación a su IDE ex: idea inteligente
(Archivo> configuración> compilador de Java) agregar como parámetro de línea de comando adicional
-coding: codificación Establezca el nombre de codificación del archivo de origen, como EUC-JP y UTF-8. Si no se especifica -codificación, se utiliza el convertidor predeterminado de la plataforma. ( DOC )
Pruebe con: javac -encoding ISO-8859-1 file_name.java
Si está utilizando Maven, configure <encoding>
explícitamente en la configuración del complemento del compilador, por ej.
<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>
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
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 programa, pero el fondo será el código utf8);
- Seleccionar proyecto
- Haga clic derecho y seleccione Propiedades
- Seleccione el recurso en el panel de recursos (parte superior del menú de la derecha que se abrió después de 2.)
- 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.
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.";
ponga esta línea en su archivo .gradle encima de Java conf.
apply plugin: ''java''
compileJava {options.encoding = "UTF-8"}