API кодирования и сервлета: setContentType или setCharacterEncoding - PullRequest
27 голосов
/ 01 февраля 2011

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

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

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

1 Ответ

33 голосов
/ 01 февраля 2011

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.

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