Добавление спецификации UTF-8 в outputStream приводит к тому, что последний символ не печатается в Java - PullRequest
4 голосов
/ 19 октября 2010

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

try {

            response.setContentType(getContentType(request, response));
            response.setContentLength(downloadData.length);
            ServletOutputStream os = response.getOutputStream();

            //Specify the BOM (Byte order Mask) for UTF-8 so that Excel can identify the encoding and open it in the correct format
            os.write(new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF }); 
            os.write(downloadData);
            os.flush();
            response.flushBuffer();
        } catch (IOException e) {
            logger.error(e);
        }

Однако, когда я вывожу выходной поток в файл, последний символ не печатается.

Есть идеи почему?

1 Ответ

4 голосов
/ 19 октября 2010

Разве длина не должна быть увеличена на 3 для учета спецификации?

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