Когда определенный пользователь пытается просмотреть нашу веб-страницу, при вызове response.getWriter () выдается исключение NullPointerException с сообщением «charsetName». Я декомпилировал класс ответа нашего веб-сервера (JRun 3.1) и обнаружил, что эта ошибка выдается, когда он делает это:
s = getCharacterEncoding(); // returns 'x-mac-roman' I believe
try
{
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s));
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
s = MIME2Java.convert(s); // looks like this returns null
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s)); // NPE!!!
}
Я наконец смог воспроизвести эту ошибку, когда заставил свой браузер отправить заголовок запроса 'Accept-Charset = x-mac-roman, utf-8', что, похоже, и делает браузер пользователя.
Это код веб-сервера, поэтому я не могу вносить здесь никаких изменений, но это то, что мы можем сделать с нашей стороны, чтобы этого никогда не произошло. Можем ли мы явно заставить веб-сервер использовать определенную кодировку и не оставлять его на усмотрение запросов?