JSP中utf-8中文乱码问题。。。

我就不明白了。。我写了两个jsp文件,编码均为utf-8,一个就能正常显示中文,另一个则不能。。。求解啊


正常显示中文的jsp:


<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

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

<title>站内检索索引建立页面</title>

<script type="text/javascript">

    function checkForm(form){

        if(form.toIndexPage.value==""||form.toIndexPage.value==null){

            alert("请输入要建立索引的网站!");

            form.toIndexPage.focus();

            return false;

        }

        else

            return true;

    }

</script>

</head>

<body>

<form action="<%=request.getContextPath()%>/IndexServlet" 

    METHOD="post" onsubmit="return checkForm(this)">  <%--查询表单  10行--%>

<B>输入要建立索引的网站:</B>

<INPUT TYPE=text NAME="toIndexPage" SIZE=30 VALUE="">

<INPUT TYPE=submit VALUE="查询">

</form>

</body>

</html>

乱码显示中文的jsp


<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.util.*,java.text.*" pageEncoding="utf-8" %>

<% request.setCharacterEncoding("utf-8"); %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

<title>站内检索系统检索页面</title>

<style type="text/css">

<!--

.STYLE1 {

    font-family: "仿宋";

    font-size: 18px;

}

.STYLE2 {

    font-family: "黑体";

    font-weight: bold;

}

-->

</style>

</head>


<body>

<div>

  <div align="center" class="STYLE2">

    <h1>站内检索系统</h1>

  </div>

</div>

<div>

  <p align="center" class="STYLE1">索引建立成功:<%=request.getAttribute("WebName") %></p>

  <p align="center" class="STYLE1">请输入检索内容:

    <input type="text" name="textfield" />

    <input type="submit" name="Submit" value="检索" />

  </p>

</div>

<div>

  <div align="center">当前时间:<%String mydate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());%>

     

SMILET
浏览 853回答 5
5回答

弑天下

大概是因为一个是utf-8编码,一个是utf-8 +bom的编码,两种的区别在视觉上是看不出来的。你放到eclipse中统一改成utf-8的就好了。

富国沪深

查一下JSP文件自身编码

函数式编程

请问是不是这一句代码生成的文字是乱码?<%=request.getAttribute("WebName")&nbsp;%></p>JSP里面通过request传送参数之后,会自动变为ISO8859-1的编码,所以从request中读取参数的时候,还需要设置这个取值的编码为UTF-8。你可以看看JSP的教材上应该有讲解。我也已经很久没有接触过JavaWeb了,如果有错误,还希望多多指教!

蛊毒传说

jsp文件自身的编码。如果你用myeclipse编写的话,要去修改一下新建文件时的默认编码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript