JSP页面编码问题

 1 <%@ page language="java" contentType="text/html; charset=gb2312"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <b>hello world , 你好,世界!</b>
11 </body>
12 </html>

如上面这段简单的JSP代码,里面有三个地方对编码进行了设置:

1. contentType 中的 charset

2. pageEncoding

3. html meta标记中的charset

那么这三个都在什么地方起到什么作用,

在说编码之前首先简单叙述一下JSP页面执行的原理,当一个JSP页面编写完成后需要将该页面发布到相应的服务器例如tomcat上,整个发布过程由包括两个小的步骤,一、将JSP翻译成Servlet(一个Java文件)。二、JSP引擎(tomcat)调用Java编译器将Servlet编译成.class文件并保存到规定的目录中。三、当用户在地址栏输入相应JSP页面的地址时,JSP引擎调用Java虚拟机来解释执行.class文件,并生成向客户端的回应信息。

下面进入正题,编码

首先讲pageEncoding,我们知道每一个文档或者页面都有相应的编码,如果不提供编码格式,程序是无法将一连串的二进制翻译出来的。JSP也一样,那么这个pageEncodinig就是指定这个JSP文件中内容的编码格式,这个编码格式告诉JSP引擎,我这个JSP是用什么编码的,你可以使用什么解码格式来读取我这个文档,并翻译成相应的Servlet。这个Servlet的格式是JSP引擎的规定的utf-8。同样Servlet编译成的.class文件也是JSP引擎规定的utf-8格式。至此pageEncoding的使命完成。如果想看看这个pageEncoding是否设置正确可以查看JSP相应的Servlet中代码是否有乱码,如果有表示pageEncoding没有设置正确。常用的编码有iso-8859-1(英文字符)、utf-8(全世界通用)、gb2312(国标,中文编码,同样支持英文)、gbk(gb2312的增强版,支持的字符更多,与gb2312相对于utf-8占用空间较大)。

在JSP页面指令中的charset是当客户端请求JSP页面时,.class文件返回页面的编码格式,假如页面中含有中文,而且pageEncoding设置正确,那么在Servlet中文会正常显示,但是如果charset设置的是英文编码例如iso-8859-1,Servlet中的中文输入到客户端浏览器就会出现乱码。

最后一个是html meta标签中的,这个标签功能与JSP页面指令charset是相同的,该标签在JSP页面中不起作用,至少我测试的是不起作用的,如果有相应页面指令则按照页面指令编码,如果没有默认utf-8,该标签不起作用,但是在普通的html中是起作用的。

我知道的就这么多了

时间: 2024-12-08 18:45:46

JSP页面编码问题的相关文章

转-Eclipse,tomcat及jsp页面编码的设定解决的中文乱码问题

一.Eclipse下编码的设定(在myeclipse下设定方法类似) 1.window -> Preferences -> general -> Workspace -> Text file encoding(这里是设置工作去的编码) 选择Other,将编码改变为UTF-8,这样以后新建立工程其属性对话框中的Text file encoding即为UTF-8. 2.window -> Preferences -> general -> Content Types(

java中文乱码解决之道(七)-----JSP页面编码过程

我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco

Eclipse Java EE IDE中jsp页面编码修改

Eclipse Java EE IDE模板编码是ISO8859,肯定不是我们需要的,修改方法如下图: 依次点击:Window---->Preference---->Web---->JSP Files,修改Encoding为ISO 10646/Unicode(UTF-8)即可. 转载请注明地址: http://www.phpddt.com/phpdown/Eclipse-Java-EE-IDE.html 尊重他人劳动成果就是尊重自己!

JSP页面,响应和请求编码全解

JSP页面编码 Page character encoding指的是JSP文件和Tag文件本身的编码格式. 如果web.xml中<jsp-config>元素中配置了<page-encoding>,页面上page指令的pageEncoding属性必须和web.xml中<jsp-config>元素中的<page-encoding>元素指定的page-encoding一致,否则会导致转换错误.也就是说<page-encoding>配置和pageEnco

Eclipse中JSP页面默认编码修改

JSP页面默认编码为ISO-8859-1 要修改为UTF-8,步骤如下 选择windon-->preference 在弹出框操作 以后新建JSP页面编码为UTF-8编码 原文地址:https://www.cnblogs.com/seachan/p/11498669.html

JSP文件编码

1. pageEncoding: <%@ page pageEncoding="UTF-8"%> jsp页面编码: jsp文件本身的编码 2. contentType: <%@ page contentType="text/html; charset=UTF-8"%> web页面显示编码: jsp的输出流在浏览器中显示的编码 3. html页面charset: <META http-equiv="Content-Type&qu

JSP页面设置编码(转,不知出处)

1. pageEncoding: <%@ page pageEncoding="UTF-8"%> jsp页面编码: jsp文件本身的编码 2. contentType: <%@ page contentType="text/html; charset=UTF-8"%> web页面显示编码: jsp的输出流在浏览器中显示的编码 3. html页面charset: <META http-equiv="Content-Type&qu

MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码

在MyEclispe中创建Jsp页面,Jsp页面的默认编码是“ISO-8859-1”,如下图所示: 在这种编码下编写中文是没有办法保存Jsp页面的,会出现如下的错误提示: 因此可以设置Jsp默认的编码为utf-8,具体步骤如下: 启动MyEclipse,点击菜单上的window--->preferences 在弹出的对话框中点击MyEclise--->Files and Editors--->JSP,如下图所示: 此时就可以看到JSP编码设置面板,如下图所示: 在Encoding那个下拉

怎样设置Myeclipse的jsp页面为默认utf-8编码

作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,Myeclipse的高耦合使得开发jsp页面变得异常的容易,由于UTF-8默认支持的语言最多,可以显示很容易的显示中文,日本语等很多国家的语言,所以我们通常将JSP编码方式设置为UTF-8. 简单介绍下MyEclipse吧!MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaE