Java는 웹 애플리케이션, 모바일 애플리케이션, 데스크톱 애플리케이션 및 기타 분야의 개발에 널리 사용되는 크로스 플랫폼 프로그래밍 언어입니다. Java 개발자가 코드를 작성할 때 구성 정보, 국제화된 문자열 및 기타 데이터를 저장하기 위해 속성 파일을 사용해야 하는 경우가 많습니다. 그러나 Java 11을 사용하여 개발된 애플리케이션에서는 UTF-8 속성 파일 오류가 발생할 수 있습니다. 이 문서에서는 Java11 UTF-8 속성 파일 오류를 처리하고 방지하는 방법을 설명합니다.
1. UTF-8 속성 파일 오류의 증상
Java11에서 UTF-8 인코딩을 사용하여 속성 파일을 저장하고 속성 파일에 중국어, 일본어 및 기타 비ASCII 문자가 포함되어 있는 경우 다음과 같은 문제가 발생할 수 있습니다. 예외:
java.nio.charset.MalformedInputException: Input length = 1 at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:274) at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339) at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at java.base/java.io.InputStreamReader.read(InputStreamReader.java:185) at java.base/java.io.BufferedReader.fill(BufferedReader.java:161) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:326) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:392)
이 예외 메시지로는 문제의 근본 원인을 파악하기 어렵지만 분석을 통해 다음과 같은 결론을 내릴 수 있습니다.
2.UTF-8 속성 파일 오류를 방지하는 방법
UTF-8 인코딩을 사용하여 속성 파일을 저장할 때 위 예외가 발생하는 경우, 속성 파일을 ISO-8859-1 또는 GB2312 및 기타 인코딩 형식으로 변환합니다. 이 두 가지 인코딩 형식은 유니코드 문자를 지원하지 않으므로 MalformedInputException이 발생하지 않습니다. 그러나 인코딩 형식을 수정하면 ASCII가 아닌 문자가 손실되거나 왜곡될 수 있다는 점에 유의해야 합니다.
속성 파일을 읽는 데 올바른 문자 집합을 사용하도록 속성 파일을 읽는 코드를 수정하세요. Java11에서는 Properties 클래스를 사용하여 속성 파일을 읽을 때 ISO-8859-1 인코딩이 기본적으로 사용되므로 중국어와 같은 ASCII가 아닌 문자를 읽을 때 문자가 깨져서 나타날 수 있습니다. 다음 코드를 사용하여 UTF-8 형식의 속성 파일을 읽을 수 있습니다.
InputStream inputStream = this.getClass().getResourceAsStream("/test.properties"); Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); Properties properties = new Properties(); properties.load(reader);
이 방법은 속성 파일의 인코딩 형식을 UTF-8로 설정하여 중국어와 같은 ASCII가 아닌 문자가 포함된 속성 파일을 읽을 수 있도록 합니다. 바르게.
3. UTF-8 속성 파일 오류 처리 방법
UTF-8 속성 파일 오류가 발생한 경우 다음 단계를 통해 해결할 수 있습니다.
임의의 텍스트 편집기를 사용하여 속성 파일을 열고 파일 내용에 중국어, 일본어, 한국어 및 기타 비ASCII 문자가 포함되어 있는지 확인하세요. 속성 파일에 이러한 문자가 포함되어 있지 않으면 코드의 다른 문제를 확인해야 합니다.
텍스트 편집기를 사용하여 속성 파일을 열고 파일의 인코딩 형식을 확인하세요. UTF-8 인코딩 형식이고 파일에 ASCII가 아닌 문자가 포함되어 있으면 MalformedInputException이 발생할 수 있습니다.
특정 상황에 따라 속성 파일 인코딩 형식을 수정하거나 속성 파일의 코드를 읽어서 MalformedInputException을 피하거나 해결할 수 있습니다. 예외.
즉, Java11에서 UTF-8 인코딩 형식의 속성 파일을 사용할 때 문자 집합 인코딩 문제에 특별한 주의가 필요합니다. 인코딩 형식과 속성 파일을 읽는 코드를 올바르게 설정하면 UTF-8 속성 파일 오류 문제를 효과적으로 피할 수 있습니다.
위 내용은 Java 오류: Java11 UTF-8 속성 파일 오류, 처리 및 방지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!