Ответ 1
Используйте escape-формат "\ uxxxx".
Согласно Wikipedia, символ авторского права является unicode U + 00A9, поэтому ваша строка должна читать:
String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";
В настоящее время я работаю над проектом Java, который генерирует следующее предупреждение при компиляции:
/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8
[javac] String copyright = "� 2003-2008 My Company. All rights reserved.";
Я не уверен, как SO будет отображать символ перед датой, но он должен быть символом авторского права и отображается в предупреждении как знак вопроса в алмазе.
Стоит отметить, что символ отображается в выходном артефакте правильно, но предупреждения являются неприятностью, и файл, содержащий этот класс, может быть в какой-то момент затронут текстовым редактором, который неправильно сохранит кодировку...
Как я могу ввести этот символ в строку "copyright", чтобы компилятор был доволен, и символ сохраняется в файле без каких-либо проблем с повторным кодированием?
Используйте escape-формат "\ uxxxx".
Согласно Wikipedia, символ авторского права является unicode U + 00A9, поэтому ваша строка должна читать:
String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";
Попробуйте: javac -encoding ISO-8859-1 file_name.java
Если вы используете 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.encoding = UTF8, каждый раз, когда запускается JVM, он будет получать эту информацию.
поместите эту строку в файл yor.gradle над Java conf.
apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}
В большинстве случаев эта ошибка компиляции возникает при компиляции файла с кодировкой unicode (UTF-8)
javac -encoding UTF-8 HelloWorld.java
а также вы можете добавить этот параметр компиляции в свою среду IDE
ex: Интеллектуальная идея
(Файл > настройки > Компилятор Java) добавьте в качестве дополнительного параметра командной строки
-кодирование:Задайте имя кодировки исходного файла, например EUC-JP и UTF-8. Если -encoding не указано, используется конвертер по умолчанию платформы. (DOC)
Если вы используете eclipse (Eclipse может поместить код utf8 для вас, даже вы напишите символ utf8. При программировании вы увидите обычный символ utf8, но фон будет кодом utf8);
P.S:, это будет нормально, если вы статичное значение в коде. Для примера String test = "İİİİİııııııııççççç";
У меня была та же проблема, где индекс символов, указанный в сообщении об ошибке java, был неправильным. Я сузил его до двойных кавычек до того, как сообщаемая позиция была шестнадцатеричной (исключение вместо цитаты, но представленной как цитата) вместо hex 022. Как только я поменялся на шестнадцатеричный вариант 022, все было в порядке.
Если вы используете Maven Build из командной строки, вы также можете использовать следующую команду:
mvn -Dproject.build.sourceEncoding=UTF-8
Это сработало для меня -
<?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>