[java] 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.";

날짜 전에 어떻게 문자를 렌더링할지 모르겠지만 저작권 기호 여야하며 경고에 다이아몬드의 물음표로 표시되어야합니다.

문자가 출력 아티팩트에 올바르게 나타나지만 경고는 성가신 것이며 언젠가는 인코딩을 잘못 저장하는 텍스트 편집기가이 클래스를 포함하는 파일을 건드릴 수 있습니다.

이 문자를 “저작권”문자열에 삽입하여 컴파일러가 만족하고 기호가 잠재적 인 재 인코딩 문제없이 파일에 보존되도록하려면 어떻게해야합니까?



답변

“\ 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이 시작될 때마다이 정보를 선택합니다.

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


답변

이 줄을 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"}