2017-12-17 17 views
1

나는 최근에 이클립스에서 응용 프로그램을 만들었습니다. 나는 runnable 항아리로 그것을 수출하고 영어로 모든 그리스 문자를 제외하고 잘 작동합니다. 내 응용 프로그램 내에서 그리스 문자로 파일을 가져 오려고하면 올바르게 표시되지 않습니다. 모든 인코딩을 UTF-8로 변경하려고 시도했지만 운이 없습니다. 나는 또한 정확한 그리스 메뉴와 응용 프로그램을 가지고 있고 그것은 나쁘지도 그 중 하나를 보여줍니다. 내 프로젝트 내의 모든 파일과 폴더가 UTF-8을 사용하고 있기 때문에,JavaFx 그리스어 문자 인코딩

start cmd /k java -Dfile.encoding=UTF-8 -jar Compiler.jar 

하지만이 나던 나에게 어떤 의미합니다 지금까지 문제를 해결하는 유일한 방법은 실행 가능한 .bat 파일을 생성하고이 내부를 붙여 넣는 것입니다 부호화. 나는 일식을 위해 창문 10, 최신 일식과 javafx를 사용하고있다.

그리스 문자는 프로젝트의 일부 파일에 있습니다 (예 : src/grammars/xx-file). 응용 프로그램은 문제를 발견하고 읽습니다. 그리스 문자는 레이블과 응용 프로그램의 제목에도 표시됩니다. javafx 환경의 기본 글꼴을 사용합니다. 예를 들어, 하나의 파일에 다음이 포함됩니다. I -> # E | ε. 프로그램으로 가져 오면 다음과 같이 변경됩니다. I -> # E | Ξμ

또한 .jar에서 해당 파일을 읽으려면이 파일을 추가하고 싶습니다. InputStream을 사용해야했습니다. 그래서 그것은 InputStream에 인코딩을 지정할 수 있습니까?

+0

그리스 문자는 어디에 있습니까? 소스 파일, 리소스 파일 또는 어딘가에서 파일을로드하고 있습니까? '-Dfile.encoding'의 값을 지정하지 않는 한, 플랫폼의 디폴트가 파일 조작에 사용되기 (위해) 때문에, 이것은 통상의 Windows 머신으로 예상되는 동작입니다. –

+0

자바 응용 프로그램에서 글꼴에 액세스 할 수 있습니까? 명령 줄 (cmd/terminal)에서 실행하여 오류가 발생하는지 확인한 다음 질문을 업데이트하십시오. –

+0

명령 줄에 문제가 없습니다. 내가 말한대로 내 질문에 지정된 코드를 실행하고 잘 실행됩니다. – CrystalScrew

답변

1

오신 것을 환영합니다. 문제의 해결책을 찾았습니다. 내 응용 프로그램이 읽으려고 모든 파일에

InputStreamReader inputReader = new InputStreamReader(streamIn, StandardCharsets.UTF_8);

을 추가하고 문제를 해결하는 것이 수행하여. 그래서 나는 실행 가능 .jar 파일이 기본적으로 UTF-8 인코딩을 사용하고 있지 않으며 우리는 그것을 읽기 단계에서 지정해야한다고 생각한다.

+0

그렇게하는 결정적인 방법이 될 것입니다. 기본값은 사용자가 제어하고 마음대로 변경할 수있는 항목입니다. –