读取数据库中title字段,该字段是中文,数据库中没有乱码。
但是jsp页面读取,页面显示乱码?
为什么,怎么解决?
代码如下。
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<%@ page import="java.sql.*,java.io.*"%>
<% request.setCharacterEncoding("gb2312"); %>
<jsp:useBean id="rst" scope="page" class="com.shuntu.dbconn.DBResult"/>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"  "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>手机网站</title>
    <link href="images/css.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="logo">
<img src="images/sdlib.gif" width="236" height="46" alt="手机网站" /></div>
<div class="unnamed1" id="nav"> <a href="news.jsp">顺图动态</a> <a href="search.jsp">馆藏查询</a> <a href="culture.jsp">文化传递</a> <a href="recommended.jsp">书刊推荐</a> <a href="#">读者留言</a> <a href="navigation.jsp">手机导航</a></div>
<div class="lanmu"> <img src="images/003.gif" width="14" height="13" align="absmiddle" /> <a href="stdt.jsp" class="biaoti">顺图动态</a></div>
<%
String id=request.getParameter("id");
String strSql="select title from news where id='"+id+"'";
System.out.println("id==="+id);
    ResultSet rs=rst.getResult(strSql);
if(rs.next()){
%>
<span class='biaoti2'><%=rs.getString("title")%> </span>
<%}%></body>
</html>

解决方案 »

  1.   

    把charset=gb2312这个改成charset=UTF-8
      

  2.   

    <% response.setCharacterEncoding("gbk"); %>--试试这个改成统一编码gbk试试..
      

  3.   

    get提交方式是很容易中文乱码的 修改一下 Tomcat/conf/server.xml 这个文件 <Connector port="8080" protocol="HTTP/1.1" 
                   maxThreads="150" connectionTimeout="20000" 
                   redirectPort="8443" URLEncoding="UTF-8"/>在这句上加上 URLEncoding="UTF-8 试试
      

  4.   

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

  5.   

    charset=gb2312"改成charset=utf-8
      

  6.   

    <%@ page contentType="text/html;charset="UTF-8" language="java"%>
    顶!!!
      

  7.   

    建议做一个过滤器
    首先创建一个类,继承Filter,然后在里边的dofilter方法里写
    request.setCharacterEncoding("GBK");
    chian.dofilter(request,response);最后在web.xml配置<filter>和<filter-mapping>信息
      

  8.   

    <%@ page contentType="text/html;charset=gb2312" language="java"%>
    <% request.setCharacterEncoding("gb2312"); %>
    <?xml version="1.0" encoding="utf-8"?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    这四个不统一,改成一种编码String id=request.getParameter("id");
    id,用utf-8解码一下
      

  9.   

    <%@ page contentType="text/html;charset=gb2312" language="java"%>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    先把这两个改统一的编码,看看,应该就能解决你的问题
      

  10.   

    修改一下 Tomcat/conf/server.xml 这个文件<Connector port="8080" protocol="HTTP/1.1"  
      maxThreads="150" connectionTimeout="20000"  
      redirectPort="8443" URLEncoding="UTF-8"/>jsp 页面
    <%@ page contentType="text/html;charset="UTF-8" language="java"%>或
    <Connector port="8080" protocol="HTTP/1.1"  
      maxThreads="150" connectionTimeout="20000"  
      redirectPort="8443" URLEncoding="gbk"/><%@ page contentType="text/html;charset="gbk" language="java"%>
      

  11.   

    非常感谢各位!问题已经解决。但是其他乱码跟着出现。
    如:往数据库中插入数据。出现乱码。怎么处理呢?谢谢!
    <%@page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*,java.util.*"%>
    <%@ page import="java.sql.*,java.io.*"%>
    <jsp:useBean id="spinfo" scope="page" class="com.shuntu.manage.LyBean">
    <jsp:setProperty name="spinfo" property="*"/>
    </jsp:useBean>
    <jsp:useBean  id="regist" scope="page" class="com.shuntu.manage.LyRegist"/>
    <%
       regist.setLyinfo(spinfo);
       regist.regist();
       out.println("<script language='javascript'>alert('登记成功');"+
                   "window.location.href='dzly.jsp';</script>");
    %>
      

  12.   

    往数据库中插入数据。出现乱码,怎么解决,谢谢啊。
    页面一:
    <%@page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*,java.util.*"%>
    <jsp:useBean id="calendar" scope="page" class="com.shuntu.showtime.ShowTime"/>
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"  "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>手机网站</title>
    <link href="images/css.css" rel="stylesheet" type="text/css" />
    </head>
    <body><div class="logo">
    <a href="#" class="biaoti">读者留言</a></div>
    <form action="lysave.jsp" method="post">
    <div class="biaoti2">姓名:</div>
    <br/>
    <div class="biaoti2"><input type="text" name="name" size="20" style="border:#00CCFF solid 1px;"/></div><br/>
    <div class="biaoti2">E-mail:</div>
    <br/>
    <div class="biaoti2"><input type="text" name="email" size="20" style="border:#00CCFF solid 1px;"/><br/></div>
    <div class="biaoti2">留言内容(必填项):</div>
    <br/>
    <div class="biaoti2"><textarea name="content" value="" rows="" cols="" style="border:#00CCFF solid 1px;"></textarea><br/><input type="submit" name="submit" value="提交"/><br/></div>
    <input name="lydate" type="hidden" value="<%=calendar.getDate()%>" />
    </form>
    </body>
    </html>
    跳转到页面二:
    <%@page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*,java.util.*"%>
    <%@ page import="java.sql.*,java.io.*"%>
    <jsp:useBean id="spinfo" scope="page" class="com.shuntu.manage.LyBean">
    <jsp:setProperty name="spinfo" property="*"/>
    </jsp:useBean>
    <jsp:useBean id="regist" scope="page" class="com.shuntu.manage.LyRegist"/>
    <%
       String name = request.getParameter("name");
       System.out.println("name==="+name);//出现乱码 
      regist.setLyinfo(spinfo);
      regist.regist();
      out.println("<script language='javascript'>alert('登记成功');"+
      "window.location.href='dzly.jsp';</script>");
    %>
    插入中文时出现乱码,各位高手,怎么解决啊。谢谢。
      

  13.   

    用的mysql的数据库吧,数据库编码也改成utf-8
      

  14.   

    charset=gb2312" 改成charset=UTF-8
      

  15.   


    sql server 2000
    谢谢继续。
      

  16.   


    <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" %>
    <% request.setCharacterEncoding("UTF-8"); %>
    <jsp:useBean id="spinfo" scope="page" class="com.shuntu.manage.LyBean">
    <jsp:setProperty name="spinfo" property="*"/>
    </jsp:useBean>
    <jsp:useBean  id="regist" scope="page" class="com.shuntu.manage.LyRegist"/>
    <%

    String name = request.getParameter("name");
    System.out.println("name==="+name);
       regist.setLyinfo(spinfo);
       regist.regist();
       out.println("留言成功!");
    %>
    成功插入中文数据,但是out.println("留言成功!");显示乱码。怎么解决。谢谢谢谢。