动态生成的html文件,网页中iframe引用时,乱码。
html本身是gbk编码,meta也指定了charset=gbk,
html文件双击,直接用ie打开正常,
但是,通过web形式访问时,则乱码,
开监控,发现在header信息中有: Content-Type=text/html; charset=utf-8
这个优先级高,所以导致ie以utf-8显示文件,故乱码。
查看web.xml,发现:
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>edu.vt.middleware.servlet.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>requestCharsetName</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>responseCharsetName</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
尝试把responseCharsetName那段去掉,就OK了,没有charset=utf-8了。
原来filter还影响静态html啊,一直以为只影响动态内容呢,汗~~
但最后,不是这么解决的。
是把html文件写成utf-8编码,但是meta里charset还是gbk,
OK了,将错就错。
|