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)
이 예외 메시지로는 문제의 근본 원인을 파악하기 어렵지만 분석을 통해 다음과 같은 결론을 내릴 수 있습니다.
- 속성 파일을 읽을 때 Java11은 기본적으로 UTF-8 인코딩을 사용합니다.
- 속성 파일을 읽는 과정에서 Java는 UTF-8 인코딩 규칙에 따라 바이트 단위로 읽습니다.
- ASCII가 아닌 문자가 포함된 바이트 시퀀스를 읽으면 Java는 이를 유니코드 문자로 변환하려고 시도합니다.
- 읽은 바이트 시퀀스를 UTF-8 인코딩 규칙에 따라 유니코드 문자로 디코딩할 수 없는 경우 MalformedInputException 예외가 발생합니다.
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가 아닌 문자가 포함되어 있는지 확인하세요.
임의의 텍스트 편집기를 사용하여 속성 파일을 열고 파일 내용에 중국어, 일본어, 한국어 및 기타 비ASCII 문자가 포함되어 있는지 확인하세요. 속성 파일에 이러한 문자가 포함되어 있지 않으면 코드의 다른 문제를 확인해야 합니다.
- 속성 파일의 인코딩 형식을 확인하세요
텍스트 편집기를 사용하여 속성 파일을 열고 파일의 인코딩 형식을 확인하세요. UTF-8 인코딩 형식이고 파일에 ASCII가 아닌 문자가 포함되어 있으면 MalformedInputException이 발생할 수 있습니다.
- 속성 파일 인코딩 형식을 수정하거나 속성 파일의 코드를 읽으세요
특정 상황에 따라 속성 파일 인코딩 형식을 수정하거나 속성 파일의 코드를 읽어서 MalformedInputException을 피하거나 해결할 수 있습니다. 예외.
즉, Java11에서 UTF-8 인코딩 형식의 속성 파일을 사용할 때 문자 집합 인코딩 문제에 특별한 주의가 필요합니다. 인코딩 형식과 속성 파일을 읽는 코드를 올바르게 설정하면 UTF-8 속성 파일 오류 문제를 효과적으로 피할 수 있습니다.
위 내용은 Java 오류: Java11 UTF-8 속성 파일 오류, 처리 및 방지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
