Encoding and Servlet API: setContentType or setCharacterEncoding

2022-09-01 06:56:13

只是想知道幕后是什么。实际上,我们似乎可以通过以下方式设置编码:

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

有什么区别?


答案 1

javadoc非常清楚其中的区别:

void setCharacterEncoding(String charset)将发送到客户端的响应的字符编码(MIME 字符集)设置为 UTF-8。如果字符编码已由 或 设置,则此方法将覆盖它。使用 text/html 的字符串调用 setContentType(java.lang.String) 并使用 UTF-8 的字符串调用此方法等效于使用 String of text/html 调用 setContentType; charset=UTF-8setContentType(java.lang.String)setLocale(java.util.Locale)


void setContentType(String type)设置发送到客户端的响应的内容类型(如果尚未提交响应)。给定的内容类型可能包括字符编码规范,例如,text/html;charset=UTF-8


答案 2

推荐