2012-06-27 3 views
12

어떻게, 왜 그런지 묻지는 않습니다. 그리고 그것이 RCP의 특정 문제인지, 아니면 자바에 고유 한 것인지 알 수 없습니다.Java 소스 파일에서 유니 코드를 이스케이프 처리해야하는 이유는 무엇입니까?

내 Java 소스 파일은 UTF-8로 인코딩됩니다.

나는이처럼 내 리터럴 문자열을 정의하는 경우 :

enter image description here

: 나는 예상대로 내가 이클립스 응용 프로그램으로 이클립스에서 그것을 실행하여 응용 프로그램에서 문자열을 사용할 때

new Language("fr", "Français"), 
    new Language("zh", "中文") 

의미가 있습니다

"Eclipse 제품 내보내기 마법사"에서 빌드 한 .exe를 실행하면 실패하는 경우 :

enter image description here

내가 사용하는 솔루션은이 같은 문자를 탈출하는 것입니다

:이 일에 아무런 문제가 없습니다

new Language("fr", "Fran\u00e7ais"), // Français 
    new Language("zh", "\u4e2d\u6587") // 中文 

그러나 나는 (내 모든 다른 스트링은 속성의 파일 이름 만이 하드 코딩되어 언어됩니다) 이해하고 싶어.

the bytecode을 빌드 할 때 컴파일러가 Java 리터럴 문자열을 변환해야한다고 생각했습니다. 그렇다면 왜 유니 코드가 필요하지 않습니까? 자바 소스 파일에서 높은 범위의 유니 코드 문자를 사용하는 것은 잘못 되었습니까? 컴파일시 그 문자들에 정확히 무슨 일이 생기며, 이스케이프 된 문자 처리와 다른 점이 있습니까? 문제가 RCP 캐시와 관련이 있습니까?

+10

이클립스 제품 내보내기 마법사가 UTF-8로 파일을 해석하지 않은 것 같습니다 플러그인의 build.properties 파일에서 텍스트 인코딩을 지정하여 제대로 작동하도록 만들 수 있습니다. 아마 당신은 인코딩이 UTF-8 ('eclipse.ini'의'-Dfile.encoding = UTF8')으로 설정된 Eclipse의 JVM을 실행할 필요가 있을까요? –

+1

이것은 왜 실제로 발생하는지 설명하지는 않지만 대체 솔루션을 제안하고 어떤 이유로 든 내보내기 마법사가 프로젝트의 인코딩을 올바르게 준수하지 않는 것으로 나타납니다. http://stackoverflow.com/questions/6891079/eclipse- rcp-wrong-encoding-when-deploying-products – Jiddo

+0

@Matt Ball의 설명을 확인하려면 마술사가 맞다고 생각합니다. "작업 공간에서 컴파일 된 클래스 파일 사용" –

답변

10

Eclipse 제품 내보내기 마법사가 파일을 UTF-8로 해석하지 않는 것으로 보입니다. 아마도 인코딩 세트를 UTF-8 (-Dfile.encoding=UTF8eclipse.ini)으로 설정하여 Eclipse의 JVM을 실행해야 할 필요가있을 것입니다. (OPS 요청에 Copypasta'd)

2

플러그인은, 그것이 IDE 내의 정상적인 제작 공정에서 별도의 공정을 통해 얻는다 컴파일 수출. 빌드 프로세스 (PDE.Build)가 IDE에서 사용하는 텍스트 인코딩을 무시한다는 것은 known bug입니다.

수출

javacDefaultEncoding.. =UTF-8 
관련 문제