response.setCharacterEncoding和setContentType
encoding那个是告诉tomcat如何将你写到response中的内容进行编码,而你的setContentType,最终会以一个header的形式附着在response的http消息头上,是高速客户端浏览器,这个http响应内容的格式和编码方式,客户端通过这个contentType来决定如何打开,如何解码。
你如果设置了contenttype,可以不用再设置encoding,可以省略
在setCharactorEncoding的时候 实际上,就是在告诉那个往resonse的消息体中写二进制字节数据的那支笔
你要用什么样子的编码方式,来写,采用不同的编码方式,你写进去的二进制字节完全不同呀
你写进去了之后,最终这个http的返回包最重要在客户端浏览器被解析,那客户端怎么知道消息体中的二进制采用什么编码的呢?
就是通过http的消息头中的ContentType来知道
javaweb中涉及到编码的一共有4个地方,返回消息体,header头部,发送消息体,和url四个部分,涉及到编码
每个部分,都有特定的处理方式