предупреждение "unmappable character for encoding" в Java
в настоящее время я работаю на Java-проект, который выдает следующее предупреждение при компиляции:
/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8
[javac] String copyright = "� 2003-2008 My Company. All rights reserved.";
Я не уверен, как так будет отображаться символ до даты, но он должен быть символом авторских прав и отображается в предупреждении как знак вопроса в алмазе.
стоит отметить, что символ отображается в выходном артефакте правильно, но предупреждения являются помехой, и файл, содержащий этот класс, может однажды быть затронут текстом редактор, который сохраняет кодировку неправильно...
Как я могу ввести этот символ в строку" copyright", чтобы компилятор был доволен, и символ сохраняется в файле без потенциальных проблем с перекодировкой?
10 ответов:
используйте escape-формат "\uxxxx".
по данным Википедия, символ авторского права-unicode U + 00A9, поэтому ваша строка должна гласить:
String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";
Если вы используете Maven, установить
<encoding>
явно в конфигурации плагина компилятора, например,<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>
Это помогло мне:
все, что вам нужно сделать, это указать переменную envirnoment называется JAVA_TOOL_OPTIONS. Если вы установите для этой переменной значение-Dfile.кодировка=utf8 в, каждый раз, когда запускается JVM, он будет собирать эту информацию.
поместите эту строку в ваш файл .gradle над Java conf.
apply plugin: 'java' compileJava {options.encoding = "UTF-8"}
в большинстве случаев эта ошибка компиляции возникает при компиляции файла unicode (UTF-8 encoded)
javac -encoding UTF-8 HelloWorld.java
и Вы можете добавить этот пункт к вашей IDE пример: Intellij idea
(Файл>настройки>Java-компилятор) добавить в качестве дополнительного параметра командной строки-кодировка : кодировка Задайте имя кодировки исходного файла, например EUC-JP и UTF-8.. Если параметр-encoding не указан, то по умолчанию используется конвертер платформы используемый. (DOC)
это сработало для меня -
<?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>
Если вы используете eclipse (Eclipse может поставить код utf8 для вас даже вы пишете символ utf8. Вы увидите нормальный символ utf8 при программировании, но фон будет код utf8);
- выберите проект
- щелкните правой кнопкой мыши и выберите свойства
- выберите ресурс on Панель Ресурсов(вверху правого меню, которое открывается после 2.)
- вы можете ознакомиться в Панель Ресурсов, Кодировка Текстового Файла, выберите другой, который вам нужен
P. S: это будет хорошо, если вы статическое значение в коде. Например String test = "IIIIIııııııççççç";
У меня была та же проблема, где индекс символов, указанный в сообщении об ошибке java, был неправильным. Я сузил его до символов двойной кавычки непосредственно перед сообщенной позицией, являющейся hex 094 (отмена вместо цитаты, но представленная как цитата) вместо hex 022. Как только я поменялся на вариант hex 022, все было в порядке.