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

html-css05

在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>

要在jsp页面中放置 html 文本是不行的,因为放在jsp中的 html 文本会相互混淆起来,产生严重的错误。

如果 html

文本很少,可以将其中的〈 〉用全角的〈 〉代替;如果文本很长,将它门放在标签〈xmp〉〈/xmp〉中,这是专门用来显示 html

文本的标签。与此相关的一个问题是:有时从网页上“挖”下来的 html 代码,放在 html 文件中浏览时,显示的全是 html

代码,就是因为他们制做网页时将标签的大于号、小于号用全角的〈〉代替了