用Eclipse开发的jsp应用, 在index.jsp文件中使用<%@include file ="header.htm" %>把一个htm文件包含进来,
在Eclipse中能设置encoding的地方,编码都设置为UTF-8, index.jsp文件中的所有编码设置部分也都设置为UTF-8,
因为header.htm不是个完整的页面,所以没有设置编码格式,但在eclipse里设置htm文件编码为UTF-8.单独浏览header.htm (浏览器的编码选UTF-8)没有问题,但访问index.jsp文件,则header部分显示的就是乱码!
反复调整都不行。现在找到的解决方案是,把header.htm改名为header.jsp,并在头部加上<%@ page contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>,在index.jsp中 采用<jsp:include page="header.jsp">的方法把头部包含进来,就没问题了。请问: 为什么静态包含htm文件会产生编码问题?  是不是有的地方还需要设置?大家如何解决这个问题的?

解决方案 »

  1.   

    我觉得是不是jsp和htm的兼容性问题。
      

  2.   

    header.htm如果没有设置编码格式,在win下默认应该是gb2312,而你的jsp文件编码格式是utf-8,你可以试试在header.htm中加入编码格式utf-8,试试!
      

  3.   

    如果不用gb2312的话一般在页面都要加上pageEncoding="UTF-8"的吧
      

  4.   

    用<jsp:include/>代替<%@include%>
      

  5.   

    我知道是编码格式的问题,但我的操作系统是英文操作系统, 而且header.htm在UTF-8的浏览器设置下能正常显示(在GB2312下不能!)所有编码应该是UTF-8,为什么一include就不行了 ? 不得其解
      

  6.   


    一个是静态引入 一个是动态引入 具体的去google
      

  7.   

    html 也可以设置编码的啊   
      

  8.   

    <%@include%>一般都会产生字符编码的问题,建议楼主用户<jsp:include/>试试