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

需求定制 需求定制 主题:1050 回复:2283

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

晚风撩人 发布于 2017-01-02 字数 397 浏览 1012 回复 3

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");
这几个句子分别都是在哪些位置起作用?这几个句子是否有作用相同的?
多谢!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

归属感 2017-04-06 3 楼

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

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

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

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

 response.setCharacterEncoding("utf-8")

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

晚风撩人 2017-03-07 2 楼

<%@ page contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
这一句是声明页面的编码方式 是gb2312
2.<meta http-equiv="Content-Type" content="text/html; charset="gb2312">
这一句只是一份说明,就像说明书一样 说明本文档的编码格式为gb2312 一般不用理会
3.response.setCharacterEncoding("utf-8");
响应的时候,返回的编码格式
4.response.setContentType("text/html;charset=gbk");
设置页面内容为html格式,且编码格式为gbk的编码

灵芸 2017-02-22 1 楼

殊途同归,所有的方法都是为了解决HTML的编码声明问题。
浏览器需要HTML显式的告诉自己输出页面所使用的编码,否则就会采用浏览器的默认编码设置。
一般我们的浏览器默认是GB2312/GBK的编码,如果服务端输出的HTML没有告诉浏览器需要使用UTF8的编码,那么就会产生乱码问题。