У меня возникают проблемы с загрузкой и разбором файла в виде строк UTF-8. Я использую следующий код:Servlet не анализирует загруженный файл как UTF-8
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Part filePart = request.getPart("file");
InputStream filecontent = filePart.getInputStream();
// ...
}
И мой веб-страница выглядит следующим образом:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="UploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" />
</form>
</body>
</html>
Я нашел большой post о UTF-8 кодировкой в Java WebApps, но, к сожалению, она не работает для меня , У меня все еще есть случайные символы в строках в отладчике NetBeans, и когда я показываю их на веб-странице, хотя большинство из них отображаются правильно, некоторые кириллические буквы (я, с, Н, А) заменяются на « ?»
Проблема заключается в коде, который использует этот поток filecontent, который вы нам не показали. – bmargulies
@bmargulies Я не показывал это специально, потому что я портировал его из настольного приложения, и он отлично работал там. – prazuber
Возможно, у вас другая кодировка по умолчанию. – bmargulies