String sql="select * from text where name='"+area+"'";~~~估计是area的编码问题,你可能要把area字符串的编码与你的数据库的字符集一致,例如假设你的DB字符集是ISO88591编码的,用下面的方法或许可以帮你解决这个问题: ... public static String fromGBKtoISO(String s){ try { if (s==null || s.length()<1) return s; char c = s.charAt(0); //System.out.println("s.charAt="+((int)c)); if (c<=255) return s; // if char code < 256, means not unicode, so return byte[] temp = s.getBytes("GBK"); String a = new String(temp,"iso8859-1"); //System.out.print("s.charAt="); //for (int i=0;i<a.length(); i++) System.out.print(((int)a.charAt(i))); //String a = new String(temp,"gb2312"); //System.out.println(fromISOtoGBK(a)); return a; }catch (Exception e) { return null; } } ... String sql="select * from text where name='"+new String(area.getBytes("GBK"),"ISO88591")+"'";
String sql="select * from text where name='"+area+"'"; 改成 String sql="select conter from text where name='"+area+"'"; while(rs.next()) { out.println(area+":"+rs.getString("conter")); }rs.close();stmt.close();con.close();放到finally里面去做
...
public static String fromGBKtoISO(String s){
try {
if (s==null || s.length()<1) return s;
char c = s.charAt(0);
//System.out.println("s.charAt="+((int)c));
if (c<=255) return s;
// if char code < 256, means not unicode, so return
byte[] temp = s.getBytes("GBK");
String a = new String(temp,"iso8859-1");
//System.out.print("s.charAt=");
//for (int i=0;i<a.length(); i++) System.out.print(((int)a.charAt(i)));
//String a = new String(temp,"gb2312");
//System.out.println(fromISOtoGBK(a));
return a;
}catch (Exception e) {
return null;
}
}
...
String sql="select * from text where name='"+new String(area.getBytes("GBK"),"ISO88591")+"'";
改成
String sql="select conter from text where name='"+area+"'"; while(rs.next())
{
out.println(area+":"+rs.getString("conter"));
}rs.close();stmt.close();con.close();放到finally里面去做
双鱼座: <%=rs.getString(2)%>
白羊座: <%=rs.getString(3)%>
金牛座:<%=rs.getString(4)%>
双子座:<%=rs.getString(5)%>
巨蟹座:<%=rs.getString(6)%>
狮子座:<%=rs.getString(7)%>
处女座:<%=rs.getString(8)%>
天平座:<%=rs.getString(9)%>
天蝎座:<%=rs.getString(10)%>
射手座:<%=rs.getString(11)%>
摩羯座:<%=rs.getString(12)%>
这是什么意思,看不明白
while(rs.next())
{
%>
<%=area%>:<%=rs.getString("conter")%>
<%
}
rs.close();
stmt.close();
con.close();
%>
这样会好点
String area=request.getParameter("area");
area=new String(area.getBytes("ISO8859_1"),"GBK");
这个又是什么意思