java - maven pom utf 8




Ant가 내 시스템 기본 Cp1252 대신 UTF-8을 사용하여 Eclipse에서 'javac'을 실행하게하는 것은 무엇입니까? (2)

지난 주에 필자가 새로 채택한 응용 프로그램을 디코딩 할 때 일부 주요 인코딩 문제가 발생하는 이유를 알아 내려고 노력했습니다. 마지막으로 문제는 앤트로 빌드되어 서버에 전개 된 JAR / WAR가 시스템 기본값 인 CP1252 대신 인코딩 UTF-8을 사용하여 javac 태스크로 컴파일되고 있다는 것을 알았습니다.

이것은 주로 이러한 특수 문자에 대한 많은 하드 코딩 된 문자열 / 문자를 가짐으로써 발생하는 것 같습니다.

이것은 다음 단계 중 하나를 통해 쉽게 해결할 수 있습니다.

  • 이클립스 프로젝트의 인코딩을 UTF-8로 변경하여 서버의 바이트 코드와 일치시킨다.
  • javac 작업의 인코딩 을 CP1252로 설정하여 클라이언트 바이트 코드와 일치하도록 WAR 파일을 작성합니다.
  • 이상하게도 인코딩 지정하지 않고 명령 프롬프트에서 Ant 만 실행하면됩니다.

Eclipse에서 Ant 가 UTF-8로 변경되는 이유는 무엇입니까? 구성 가능합니까? 어디서 구성합니까?

체계

  • 윈도우 XP
  • Eclipse 3.5
  • 개미 1.7.1
  • Java 1.6.0_11

Ant, Eclipse에서 실행, 모든 동일한 버전 (Java 1.6.0_15는 제외)을 사용하여 Java 소스 파일을 Windows-1252 합니다. 내 작업 공간과 프로젝트가 기본 설정을 사용하고 있습니다.

서버의 바이트 코드와 일치하는 UTF-8

나는 이것이 당신이 무엇을 의미하는지 확신하지 못합니다 - 당신은 반드시 소스 파일의 인코딩을 의미합니다. 바이트 코드는 구조화 된 명령어 세트입니다. 클래스 파일에 내장 된 문자열 리터럴은 항상 UTF-8 입니다.

유니 코드 이스케이프 시퀀스 를 사용하여 내 파일을 인코딩에 알맞지 않게 만듭니다. native2ascii 또는 java.nio.charset API와 같은 도구를 사용하여이를 지원할 수 있습니다.


명령 줄에서 Ant를 사용하면 자동으로 시스템의 기본 인코딩이 사용됩니다.이 인코딩은 시스템에 Windows-1252 인 것처럼 보입니다.

Eclipse에서 Ant를 사용하면 소스 파일 / 폴더의 로컬 인코딩 속성을 읽어 어떤 파일을 사용해야할지 결정합니다. 이 등록 정보등록 정보 대화 상자의 자원 페이지에 있으며 원본 폴더를 마우스 오른쪽 버튼으로 클릭 할 때 사용할 수 있습니다.

아무것도 지정하지 않으면 작업 영역의 기본 인코딩이 사용됩니다. Window> Preferences 대화 상자를 사용하여 구성 할 수 있습니다.

희망이 도움이됩니다.







ant