Java에서 UTF-8 인코딩에 문제가 있습니다. UTF-8로 인코딩 된 .txt 파일이 있습니다. 메모장에서 실제로 파일이 UTF-8로 인코딩되었는지 확인했습니다. 파일을 읽으려고하지만 특수 문자가 올바르게 표시되지 않습니다.Java에서 UTF-8 txt 파일의 특수 문자를 읽을 수 없습니다.
나는 다음 코드 평화를 사용
try {
Scanner sc = new Scanner(new FileInputStream("file.txt"), "UTF-8");
String str;
while(sc.hasNextLine()) {
str = sc.nextLine();
roadNames.add(str);
System.out.println(str);
}
sc.close();
} catch(IOException e1) {
System.out.println("The file was not found....");
}
그것은 내 생성 된 jar 파일에 올바르게 내가 UTF-8로 기본 인코딩을 정의 이클립스 특수 문자를 보여주고 있지만.
나를 위해 실제로 작동하는 유일한 것은 "java -Dfile.encoding = utf-8 -jar executable.jar"인수를 사용하여 .bat 파일을 만드는 것입니다. 그러나 좋은 해결책이라고 생각하지 않습니다. .
또한,이 또한 작동합니다
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(str);
업데이트
을 내가는 것을 의미
특수 문자가 제대로 표시되지 않습니다 말할 때 System.out. println은 특수 문자가 å 대신에 ##로 대체되는 문자열을 인쇄합니다. 미안 -
그것은
PrintStream out = new PrintStream(System.out, true, "UTF-8"); out.println(str);
이 Afterall는 작동하지 않습니다 밝혀졌습니다.
실제 문제는 콘솔에서 텍스트 문서 안에있는 내용을 인쇄하려고하지만 텍스트 문서의 각 줄에 이름이 들어 있고이 이름이 ArrayList에 추가된다는 것입니다. 그런 다음 JTextField를 사용하여 그 안에 입력을 시작하면 ArrayList 내에서 가장 일치하는 이름을 검색하여 입력 한 내용을 자동 완성하려고 시도합니다. JTextField 내의 특수 문자가 올바르게 표시되지 않기 때문에 인코딩 문제가 아니라면 완벽하게 작동합니다. 내가 사용하는 경우에만 올바르게 표시되는 Dfile.encoding = UTF-8 인수
당신은 무엇을 의미합니까 "그것은 제대로 특수 문자 보여줍니다"? eclipe에서 비 라틴어 기호를 볼 수 있지만 Windows에서 .bat 파일을 열면 ...? 올바른 문자가 보이지 않는다면 Windows에 올바른 언어 팩이 설치되어 있지 않기 때문일 수 있습니다. 이것은 Java 관련 질문이 아닙니다. 파일의 바이트가 올바른 경우 Java와 아무런 관련이 없습니다. –
어디에서 표시하려고합니까? > 그러나 특수 문자는 올바르게 표시되지 않습니다. –
'System.out.println (str);이 줄에 대해서 이야기하고 있다면, 콘솔이 그 문자들을 보여줄 수 없다는 것이 문제이다. 그 외에는 모든 일을 올바르게하고 있습니다. – jlordo