현재 컴파일 할 때 다음 경고를 표시하는 Java 프로젝트에서 작업 중입니다.
/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8
[javac] String copyright = "� 2003-2008 My Company. All rights reserved.";
날짜 전에 어떻게 문자를 렌더링할지 모르겠지만 저작권 기호 여야하며 경고에 다이아몬드의 물음표로 표시되어야합니다.
문자가 출력 아티팩트에 올바르게 나타나지만 경고는 성가신 것이며 언젠가는 인코딩을 잘못 저장하는 텍스트 편집기가이 클래스를 포함하는 파일을 건드릴 수 있습니다.
이 문자를 “저작권”문자열에 삽입하여 컴파일러가 만족하고 기호가 잠재적 인 재 인코딩 문제없이 파일에 보존되도록하려면 어떻게해야합니까?
답변
“\ uxxxx”이스케이프 형식을 사용하십시오.
Wikipedia 에 따르면 저작권 기호는 유니 코드 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>
답변
이것은 나를 위해 도움이되었습니다.
JAVA_TOOL_OPTIONS라는 환경 변수를 지정하기 만하면됩니다. 이 변수를 -Dfile.encoding = UTF8로 설정하면 JVM이 시작될 때마다이 정보를 선택합니다.
답변
이 줄을 Java conf 위의 yor 파일 .gradle에 넣으십시오.
apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}
답변
대부분의 경우이 컴파일 오류는 유니 코드 (UTF-8 인코딩) 파일 컴파일시 발생합니다.
javac -encoding UTF-8 HelloWorld.java
또한이 컴파일 옵션을 IDE에 추가 할 수 있습니다. 예 : Intellij idea
(File> settings> Java Compiler) add as additional command line parameter
-encoding : encoding EUC-JP 및 UTF-8과 같은 소스 파일 인코딩 이름을 설정합니다. -encoding을 지정하지 않으면 플랫폼 기본 변환기가 사용됩니다. ( DOC )
답변
Gradle 단계
Gradle을 사용하는 경우 Java 플러그인을 적용하는 줄을 찾을 수 있습니다.
apply plugin: 'java'
그런 다음 컴파일 작업의 인코딩을 UTF-8로 설정합니다.
compileJava {options.encoding = "UTF-8"}
단위 테스트가 있다면 UTF-8로도 컴파일하고 싶을 것입니다.
compileTestJava {options.encoding = "UTF-8"}
전체 Gradle 예제
이것은 전체적인 gradle 코드가 다음과 같이 보일 것임을 의미합니다.
apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}
compileTestJava {options.encoding = "UTF-8"}