2013-04-13 6 views
2

파일 이름에 스웨덴 문자가있는 파일에 액세스하려면 다음 java 코드를 유닉스에 작성했습니다.리눅스에서 스웨덴 문자로 파일에 접근하기위한 자바 코드에서 오류가 발생했습니다.

System.out.println(System.getProperty("file.encoding")); 
System.out.println(System.getProperty("sun.jnu.encoding")); 

String filePath = "/tmp/newöäåå.txt"; 
System.out.println("File Path" + filePath); 

File file = new File(filePath); 
try { 
    if(file.exists()) 
     System.out.println("length: " + file.length()); 
    else{ 
     System.out.println("file not found"); 
    } 
} catch (Exception e) { 
    System.out.println("inside exception"); 
} 

출력 : 난 단지 유닉스를 통해 파일을 만든

UTF-8 
UTF-8 
File Path /tmp/newöäåå.txt 
file not found 

. 무엇이 잘못되어야하는지 이해하도록 도와 줄 수 있습니까?

운영 체제 내가 문제가 코드 자체에있을 수 있다고 생각 열기 SUSE

+0

소스 코드를 편집하는 데 사용하는 소프트웨어는 무엇입니까? – Bobulous

답변

0

입니다. .java 파일은 UTF-8 인코딩으로 저장되지 않습니다. 어쩌면 UTF-8 인 외부 파일에서 파일 이름을 읽거나 그렇지 않으면 파일 이름을 표시하려고하거나 .java 파일이 UTF-8 인코딩으로 저장되었는지 확인하십시오.

0

Java 파일을 UTF-8로 저장하면 작동합니다.

+0

Eclipse를 사용하여 코드를 편집하고 컴파일하고 있습니다. 코드를 명시 적으로 UTF-8로 설정했습니다. 그런 다음이 컴파일 된 파일을 Unix로 전송하고 거기에서 실행합니다. 내가 유닉스에서이 파일을 컴파일하려고하면 , 내가 NewDemo.java:1:illegal 캐릭터처럼 점점 오전 : 65,279 \ 내가 나를 문 *** 문자열적인 filePath =오고 있다고 생각한다 "/ tmp/newöäåå.txt "; *** 환경에 다른 문제가 있습니까? –

+0

javac 옵션을 사용하여 컴파일 할 때 : -encoding UTF-8 – anka976