Как установить кодировку UTF-8 для сервлета загрузки файлов - PullRequest
5 голосов
/ 27 декабря 2010

У меня есть сервлет, который отправляет файл в браузер.

Я отправляю эти заголовки в сервлете.

if (request.isSecure()) {
            response.addHeader("Pragma", "no-cache");
            response.addHeader("Expires", "-1");
            response.addHeader("Cache-Control", "no-cache");
    } else {
            response.addHeader("Cache-Control", "private");
            response.addHeader("Pragma", "public");
    }

    if (isIE) {
            response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
            response.addHeader("Connection", "close");
            response.setContentType("application/force-download; name=\"" + encName + "\"" );
    } else {
        response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
        response.setContentType("application/octet-stream; name=\"" + encName + "\"" );
        if (contentLen > 0) {
            response.setContentLength(contentLen);
        }                        
    }

Затем я отправляю файл в браузер, но я 'У меня возникли проблемы с кодировкой файлов.Содержимое файла UTF-8, но я не знаю, как отправить для этого заголовок.

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

10 голосов
/ 27 декабря 2010

Нет необходимости сообщать браузеру, что файл имеет кодировку UTF-8.Устанавливая тип содержимого в application / octet-stream, вы указываете, что файл не должен интерпретироваться и может вообще не быть простым текстом.

Если вы абсолютно хотите объявить кодировку, прекратите объявлять файл как application / octet-stream и вместо этого объявите его как «text / plain; charset = utf-8».

3 голосов
/ 27 декабря 2010

response.setCharacterEncoding ( "UTF-8");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...