呵呵,从页面读来得字符串我们叫他s,那么要是想得到result(没有乱码的中文字符串)应该这样:
String result = new String(s.getBytes("iso-8851-1"),"gb2312");
注意这个方法需要try....catch
把这个result扔到数据库就行了
String result = new String(s.getBytes("iso-8851-1"),"gb2312");
注意这个方法需要try....catch
把这个result扔到数据库就行了
解决方案 »
- MyEclipse lib 目录下的jar包不能自动识别
- hibernate detachedCriteria.setProjection 求最大值问题
- java中如何将报表导出为word类型的文件???
- Servlet action is not available?
- java&&jsp高手群
- 请教一个JSP中对Cookie的操作
- request问题,紧急求救!!
- struts2上传图片,预览显示,保存数据库问题·!
- 一个数据库移植性的问题!!!!!!!!!!我快吐血了!!!!!!
- unexpected element (uri:"", local:"INSTRUMENT_ID"). Expected elements are 。。。
- input中“"”怎么显示?
- tomcat的环境配置问题
Headstr=new String(Headstr.getBytes("ISO-8859-1"),"GBK");
DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=GBK");
我试试,谢谢!
request.setCharacterEncoding("GB2312")试试
<%@ page import="java.sql.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.util.*"%>
<%@ page import="DBconManager.DBConnectionManager"%>
<%
String sqlstr = request.getParameter("sqlstr");
String Headstr = request.getParameter("ROOT");
sqlstr=new String(sqlstr.getBytes("ISO-8859-1"),"gb2312");
Headstr=new String(Headstr.getBytes("ISO-8859-1"),"gb2312");
Connection conn=null;
ResultSet rs = null;
Statement stmt = null;
DBConnectionManager connMag=null;
String id=null;
String bh=null;
String name=null;
String ssbh=null;
try
{
connMag = DBConnectionManager.getInstance();
conn = connMag.getConnection("test");
if (conn == null)
{
out.println("不能获取数据库连接.");
return;
}
conn.setCatalog("test");
stmt = conn.createStatement();
out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
out.println("\n<classes>\n");
out.println(Headstr);
rs = stmt.executeQuery(sqlstr);
while (rs.next())
{
out.println("<class>");
out.println("<ID>");
id=rs.getString(1);
out.println(id);
out.println("</ID>");
out.println("<bh>");
bh=rs.getString(2);
out.println(bh);
out.println("</bh>");
out.println("<name>");
name=rs.getString(3);
out.println(name);
out.println("</name>");
out.println("<ssbt>");
ssbh=rs.getString(4);
out.println(ssbh);
out.println("</ssbt>");
out.println("<havesubnode>");
int havesubnode=rs.getInt(6);
out.println(havesubnode);
out.println("</havesubnode>");
out.println("</class>");
}
out.println("</classes>");
}
catch (Exception e)
{
System.err.println("Exception:"+e.getMessage());
}
finally
{
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
connMag.freeConnection("test", conn);
conn = null;
}
%>
下面俩个参数从别的页面传来的
sqlstr=select * from lt_treetable order by bh
ROOT=<class><ID>default</ID><bh>root</bh><name>论坛</name><ssbt>not</ssbt><havesubnode></havesubnode></class>javabean中是这样:
String url ="jdbc:mysql:///test?useUnicode=true;characterEncoding=GBK";可是现在root中的中文显示不出来,
如果改为<%@ page contentType="text/xml;charset=gb2312"%>
则数据库的又取不出来,
我已经改了,还是不行。
sqlstr=new String(sqlstr.getBytes("ISO-8859-1"),"gb2312");
Headstr=new String(Headstr.getBytes("ISO-8859-1"),"gb2312");
注释掉看看。