2011-08-28 1 views
0

JFileChooser를 통해 UTF-8 인코딩 된 텍스트 파일을 읽고 BufferedReader.readLine을 통해 파일의 내용에 액세스합니다. 값은 JTextField에 표시되는 String에 저장됩니다. 내 질문은 : 특수 문자를 제대로 표시하려면 프로세스에서 setChar()를 어디에서해야합니까?setCharSet() JPanel에서 UTF-8 파일의 문자열 표시

감사합니다.

답변

1

문자가 배열이나 파일의 바이트로 저장 될 때 인코딩과 문자 집합이 필요합니다. Java 문자열은 완전한 유니 코드 문자로 작동하므로 (JTextField도 마찬가지이므로) 인코딩이나 문자 집합이 필요하지 않습니다. 따라서 문자 집합을 JTextField에 설정할 필요가 없습니다.

그러나 문자 집합은 파일을 읽을 때 관련이 있습니다. 다음 코드를 사용하여 올바른 독자를 초기화 할 수 있습니다.

Reader reader = new InputStreamReader(new FileInputStream(filename),"UTF-8"); 
BufferedReader br = new BufferedReader(reader)); 
2

당신은 처음부터 제대로 파일에로드 할 수 없습니다. java.lang.String은 필요한 경우 서로 게이트 쌍을 사용하여 UTF-8 파일의 모든 것을 나타낼 수 있습니다. 해야 할 일은 파일을 올바르게로드했는지 확인하고 파일을 읽을 때 인코딩을 지정하고 JTextField이 모든 관련 문자를 표시 할 수있는 글꼴을 사용하는지 확인해야합니다.

BufferedReader.readLine을 사용하여 파일을 읽었지 만 시작하려면 BufferedReader을 어떻게 작성하는지 알려주지 않았습니다. 올바른 인코딩 (이 경우 UTF-8)을 지정하여 작성한 InputStreamReader으로 싸서 BufferedReader으로 묶은 FileInputStream을 사용해야합니다.