반응형
InputStream을 UTF-8로 읽기
제가 지금 읽어보려고 하는 건text/plain
한 줄 한 줄 인터넷을 통해 파일을 제출합니다.현재 보유하고 있는 코드는 다음과 같습니다.
URL url = new URL("http://kuehldesign.net/test.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
LinkedList<String> lines = new LinkedList();
String readLine;
while ((readLine = in.readLine()) != null) {
lines.add(readLine);
}
for (String line : lines) {
out.println("> " + line);
}
파일,test.txt
,포함하다¡Hélló!
부호화 테스트에 사용하고 있습니다.
리뷰할 때OutputStream
(out
라고 생각합니다.> ¬°H√©ll√≥!
이 문제는 안 될 것 같아요OutputStream
할 수 있으니까out.println("é");
문제없이.
독서에 대한 아이디어가 있으면InputStream
UTF-8로요?감사합니다!
내 문제를 해결했다.다음 행:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
다음과 같이 해야 합니다.
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
또는 Java 7 이후:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
String file = "";
try {
InputStream is = new FileInputStream(filename);
String UTF8 = "utf8";
int BUFFER_SIZE = 8192;
BufferedReader br = new BufferedReader(new InputStreamReader(is,
UTF8), BUFFER_SIZE);
String str;
while ((str = br.readLine()) != null) {
file += str;
}
} catch (Exception e) {
}
시험해 보세요. :-)
특수문자가 발견될 때마다 ISO-8859-1이라는 인코딩을 사용해 보았습니다.
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
while ((line = br.readLine()) != null) {
}
저는 이것이 이 게시물을 보는 모든 사람에게 도움이 되기를 바랍니다.
생성자를 사용하는 경우InputStreamReader(InputStream in, Charset cs)
, 불량 문자는 사일런트 치환됩니다.이 동작을 변경하려면CharsetDecoder
:
public static Reader newReader(Inputstream is) {
new InputStreamReader(is,
StandardCharsets.UTF_8.newDecoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT)
);
}
그럼 잡아라java.nio.charset.CharacterCodingException
.
언급URL : https://stackoverflow.com/questions/4964640/reading-inputstream-as-utf-8
반응형
'programing' 카테고리의 다른 글
루트 MySQL 비밀번호를 확인하려면 어떻게 해야 하나요? (0) | 2022.12.31 |
---|---|
스프링 MVC 컨트롤러 get call에서 IP 주소를 추출하는 방법 (0) | 2022.12.31 |
데이터 속성이 존재하는지 확인할 수 있는 방법이 있나요? (0) | 2022.12.31 |
도커 컨테이너를 통한 데이터베이스 연결 문제 (0) | 2022.12.31 |
Panda Dataframe의 컬럼에서 NaN 값을 Zeroes로 대체하려면 어떻게 해야 합니까? (0) | 2022.12.21 |