关于jsp文件中字符编码的问题


jsp文件中有如下可以设置编码的方式:
1.<%@ page contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
2.<meta http-equiv="Content-Type" content="text/html; charset="gb2312">
3.response.setCharacterEncoding("utf-8");
4.response.setContentType("text/html;charset=gbk");
这几个句子分别都是在哪些位置起作用?这几个句子是否有作用相同的?
多谢!

java HTML

sanchez 12 years, 2 months ago

1.

   
  <meta http-equiv="Content-Type" content="text/html; charset="gb2312">
  

这句是告诉浏览器你的html的编码,浏览器就会使用这个编码对响应体进行解码。不过似乎有些浏览器并不理会这个标识,例如firefox是有自己的编码探测算法的。

2.

   
  <%@ page contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
  
response.setContentType("text/html;charset=gbk");>

这两个是在做同一件事,我们知道web容器中的jsp引擎会把jsp编译成servlet类的,第一句最后会编程第二句执行,这两句都相当于设置响应头部的ContentType:xxx这个项

3.

   
  response.setCharacterEncoding("utf-8")
 

这句是设置写入reponse中的outputStrem的内容使用utf-8编码格式。这个应该在还没往outputStream里面写东西的时候调用。

联合国女厕 answered 12 years, 2 months ago

Your Answer