Content-Type是HTTP Header里面的东西,和meta不能相提并论。浏览器首先要确定这是一个HTML文件才会尝试解析meta charset设置,所以如果Content-Type不对根本没有meta什么事儿。
通常来说,浏览器会先按照Content-Type的编码设置来解析文本,然后在解析过程中发现charset设置,再更换编码重新读取。若Content-Type没有设置编码,或者说这个HTML文件根本就不是走的HTTP协议,浏览器通常会猜测编码来解析文本,然后发现charset设置再更换编码读取。
所以通常来说,如果想要在meta中设置charset,那么这个编码方式至少需要是ASCII兼容的,否则浏览器的确有可能无法处理。
最好的方式是直接在Content-Type中给出编码,这样大家都省事。<meta>中指定的编码应当只作为独立HTML文件(非通过HTTP协议获取)解析读取时才用到。