Подтвердить что ты не робот

API кодирования и сервлета: setContentType или setCharacterEncoding

Просто интересно, что за сценой. На самом деле кажется, что мы можем установить кодировку с помощью:

  • response.setContentType("text/html; charset=UTF-8")
  • response.setCharacterEncoding("UTF-8")

В чем разница?

4b9b3361

Ответ 1

javadoc довольно ясно говорит о различии:

void setCharacterEncoding(String charset)Устанавливает кодировку символов (MIME-кодировку) ответа, отправляемого клиенту, например, в UTF-8. Если кодировка символов уже установлена ​​в setContentType(java.lang.String) или setLocale(java.util.Locale), этот метод переопределяет ее. Вызов setContentType(java.lang.String) со строкой text/html и вызов этого метода со строкой UTF-8 эквивалентен вызову setContentType с помощью строки text/html; charset=UTF-8.


void setContentType(String type)Устанавливает тип содержимого ответа, отправляемого клиенту, если ответ еще не зафиксирован. Данный тип контента может содержать спецификацию кодировки символов, например text/html;charset=UTF-8.