大家在写JSP的时候都会写
<%@ page language="java" contentType="text/html; charset=utf-8">在head里面也会有meta标签
<meta http-equiv="content-type" content="text/html; charset=utf-8" />这2个的作用范围有什么区别
希望高手能来指点下

解决方案 »

  1.   

    上面2个颜色代码没有解析出来....补充下就是2个charset=utf-8有什么区别
      

  2.   

    当你不指定编码时 <%@ page language="java" contentType="text/html; %>
    就会去<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    找 charset
      

  3.   


    ------------------------------------------
    加上这估计可以赢得考官了吧!
    page 中定义的contentType定义jsp字符编码和MIME类型。
    TYPE=MIME TYPE; charset=CHARSET
    页面指令定义全局属性。
      

  4.   

    优先级问题,如果。page中有的话,就以page中的编码格式为准,如果没有,再去找meta 中的编码格式。
      

  5.   

    这是我前天一个博客,这里引用论坛里朋友hafsky 的回答帖子,感觉总结的不错和大家共享一下! 关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。 第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。 第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。 JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。 第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效 contentType的設定. pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对的, 这要看各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。 jsp文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码,比如中国大陆就是GBK,台湾就是BIG5或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编码格式的内容。所以编译器采用的方法刚好可以让虚拟机得到正确的资料。 但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。 举个例子: <%@ page contentType="text/html;charset=utf-8" %> 大都会打印出乱码,因为输入的“你好”是gbk的,但是服务器是否正确抓到“你好”不得而知。 但是如果更改为 <%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%> 这样就服务器一定会是正确抓到“你好”了。 
      

  6.   

    博客名:
    关于JSP页面中的pageEncoding和contentType两种属性的区别
    路径:
    http://blog.csdn.net/yinyuan1987/archive/2008/11/30/3414646.aspx
    有兴趣的朋友可以看看
      

  7.   


    要是简单的说作用范围<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    只适用于HTML,即在 HTML 中设置页面的编码方式
    如果被访问的是一个静态的 HTML 页面。可以通过以上方式来设置页面的编码方式。对于<%@ page language="java" contentType="text/html; charset=utf-8">
    上面博客已经说的比较清楚了
      

  8.   

    很简单啊,一个作用于静态网页,一个作用与jsp页面,即java代码+html
      

  9.   

    pageEncoding指的就是编写jsp文件所使用的编码方式第二阶段会用utf-8至utf-8,
    字节码的生成依赖JVM吧, 它使用UTF-8?应该是使用locale吧
    contentType中的charset:是jsp内容(返回给客户端的页面)编码类型...
    第二阶段 
    不明白
      

  10.   

    第一个是写在http response header(这个在浏览器的网页内容中看不到)中的
    第二个是写在http response body(就是在浏览器view source看到的整个网页的source code,不只是html文件中的body部分)中的网页内容中的具体如何识别由浏览器决定,但是肯定的是浏览器会先看到header中的内容
      

  11.   

    select * from tablename where id='0123'
      

  12.   

    有谁想加入IBM, 联系我 [email protected]
      

  13.   

    pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。
    学习中
      

  14.   

    路过,觉得这样的问题不错,我刚刚接触JSP,还没有怎么看HTML方面的编码,所以对我来说很有用;
      

  15.   

    支持7楼
    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。 学习,我在总结一下,不知道对不?jsp______pageEncoding(jsp页面指定)______>*.java____utf-8(java虚拟机)_____>.class__java(contentType)_____________>.html_____meta中的charset__>浏览器中对html进行解析给用户观看
      

  16.   

    page是服务端JAVA程序编码,meta是客户端HTML编码。
      

  17.   

    醍醐灌顶,对我们这些jsp新手太有用了
      

  18.   

    补充下,如果没有设置pageEncoding,contentType还有pageEncoding的作用,如果设置了,就按pageEncoding的,p同样如果没有设置contentType,pageEncoding还有contentType的作用 记得是这样,不知道理解错没
      

  19.   


    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。 
    这个说的对,jsp先被编译成servlet这时用的是pageEncoding,而在servlet生成html时用的是contentType。
    不知道我的理解是不是正确的!
      

  20.   

    第一个指的是整个JSP页面的字符编码,而第二个仅仅限定的是返回到客户端的HTML页面的字符编码格式,所以第一个的范围要比第二个大
      

  21.   

    good 一直不明白现在明白一点了!!
    学习有个过程哈哈
      

  22.   

    一个适用于静态网页html页面声明,一个适用于jsp页面声明,只是方式不同,都是为了指明文字编码,不然就显示一团乱码