编码和Servlet API:setContentType或setCharacterEncoding

Seb*_*ber 27 java servlets character-encoding

只是想知道幕后背后是什么.实际上我们似乎可以设置编码:

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

有什么不同?

ska*_*man 34

javadoc的是关于区别很明显:

void setCharacterEncoding(String charset) 设置发送到客户端的响应的字符编码(MIME字符集),例如,设置为UTF-8.如果字符编码已由setContentType(java.lang.String)or 设置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.

  • 我遗漏了一些东西:`setContentType("text/html"); setCharacterEncoding("UTF-8");`相当于`setContentType("text/html; charset = UTF-8");`或只是`setCharacterEncoding("UTF-8");`会吗? (4认同)