在jsp文件中的html显示乱码怎么解决

html-css018

在jsp文件中的html显示乱码怎么解决,第1张

在jsp文件中的html显示乱码是因为服务端和客户端的编码不一致导致的。

如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。

解决办法:

1、未指定使用字符集编码

下面的显示页面(display.jsp)就出现乱码:

<html>

<head>

<title>JSP的中文处理</title>

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

</head>

<body>

<%out.print("JSP的中文处理")%>

</body>

</html>

只要在页面开始地方用下面代码指定字符集编码即可,在JSP页面中指定编码方式(gb2312),和浏览器解码方式设置相同,即在页面的第一行加上:

<%@ page contentType="text/htmlcharset=gb2312"%>,就可以消除乱码了。

完整页面如下:

<%@ page contentType="text/htmlcharset=gb2312"%>

<html>

<head>

<title>JSP的中文处理</title>

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

</head>

<body>

<%out.print("JSP的中文处理")%>

</body>

</html>

2、 编码字符集设置不一致

<%@ page language="java" pageEncoding="gb2312"%>

<%@ page contentType="text/htmlcharset=iso8859-1"%>

<html>

<head>

<title>JSP的中文处理</title>

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

</head>

<body>

<%out.print("JSP的中文处理")%>

</body>

</html>

第一处<%@ page language="java" pageEncoding="gb2312"%>的编码格式为jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。

第二处编码为解码格式。因为存为gb2312的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,也会出现乱码。必须一致才可以。

第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式用不用设置都可以。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式出现了乱码。

完整解决代码如下:

<%@ page language="java" pageEncoding="gb2312"%>

<%@ page contentType="text/htmlcharset= gb2312"%>

<html>

<head>

<title>JSP的中文处理</title>

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

</head>

<body>

<%out.print("JSP的中文处理")%>

</body>

</html>

你是用myecplise的预览看的?

还是在浏览器中看到的效果呢?

建议把 插入css的link语句中的 media="screen" 删除,这个属性是限制在屏幕状态下css有效,删除了后,反而在所有条件下都有效。