programing

Java의 "인코딩에 사용할 수 없는 문자" 경고

goodsources 2022. 9. 8. 22:52
반응형

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.";

SO가 날짜 전에 캐릭터를 어떻게 렌더링할지는 모르겠지만, 저작권 기호여야 하며 경고에 물음표로 다이아몬드 안에 표시됩니다.

출력 아티팩트에 문자가 올바르게 표시되지만 경고는 번거로우므로 이 클래스를 포함하는 파일이 언젠가 인코딩을 잘못 저장하는 텍스트 편집기에 의해 터치될 수 있습니다.

이 문자를 "copyright" 문자열에 삽입하여 컴파일러가 만족하고 심볼이 파일에 유지되도록 하려면 어떻게 해야 합니까?

javac - encoding ISO-8859-1 file_name.java로 시험해 보십시오.

"\uxxx" 이스케이프 형식을 사용합니다.

위키피디아에 따르면 저작권 기호는 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>

이 점이 도움이 되었습니다.

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 위의 .gradle 파일에 넣습니다.

apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}   

대부분의 경우 이 컴파일 오류는 unicode(UTF-8 인코딩) 파일이 컴파일될 때 발생합니다.

javac -encoding UTF-8 HelloWorld.java

, 이 ex 에 도 있습니다. 。인텔리주
파라미터로 ('Java'>'Java')

여기에 이미지 설명 입력

- encoding :encoding EUC-JP 및 UTF-8 등의 소스 파일 인코딩 이름을 설정합니다.-encoding을 지정하지 않으면 플랫폼 기본 변환기가 사용됩니다(DOC).

그라들 스텝

Gradle을 사용하는 경우 Java 플러그인을 적용하는 행을 찾을 수 있습니다.

apply plugin: 'java'

다음으로 컴파일 태스크의 부호화를 UTF-8로 설정합니다.

compileJava {options.encoding = "UTF-8"}   

유닛 테스트가 있는 경우는, UTF-8 로도 컴파일 할 필요가 있습니다.

compileTestJava {options.encoding = "UTF-8"}

전체 그래들 예시

즉, 전체 그래들코드는 다음과 같습니다.

apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}
compileTestJava {options.encoding = "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>

소스나 빌드 파라미터가 같은 시스템이 아닌 일부 시스템에서 이러한 현상이 발생하는 이유를 알고 싶다면 환경변수를 확인하십시오.경고/오류가 표시되는 경우LANG=C.UTF-8단, 이 경우는 없습니다.LANG=en_US.UTF-8.

이클립스를 사용하면 utf8 문자를 써도 utf8 코드를 입력할 수 있습니다.프로그래밍할 때 일반 utf8 문자가 표시되지만 배경은 utf8 코드입니다.

  1. 프로젝트 선택
  2. 우클릭 후 [Properties]를 선택합니다.
  3. [ Resource ](리소스 패널)에서 [Resource](리소스)를 선택합니다(2시 이후에 열림).
  4. 리소스 패널의 텍스트 파일 인코딩에서 원하는 다른 항목을 선택할 수 있습니다.

추신 : 코드 에서 정적 값을 지정하면 됩니다.예: 스트링 테스트 = "IIIIIIIIZZs";

자바 에러 메시지에서 보고된 문자 인덱스가 올바르지 않은 것과 같은 문제가 있었습니다.보고 위치 직전에 큰따옴표로 좁혔는데, 16진수 022가 아닌 16진수 094(따옴표 대신 취소, 따옴표로 표시)입니다.16진수 022로 바꾸자 마자 모든 것이 정상이었다.

명령 프롬프트에서 Maven Build를 사용하는 경우 다음 명령도 사용할 수 있습니다.

                    mvn -Dproject.build.sourceEncoding=UTF-8

언급URL : https://stackoverflow.com/questions/464874/unmappable-character-for-encoding-warning-in-java

반응형