中文问题,各位大虾,来点正确的答案吧!已经大半天了还没有解决,急死了?谢谢大家!

yang1221987654 2003-08-20 03:05:37
<%@ page contentType="text/xml;charset=ISO-8859-1"%>
以前用的是
<%@ page contentType="text/xml;charset=gb2312"%>
以前用的是sqlserver没问题
可是现在公司又要改成mysql.
现在的问题是
1.如果改成charset=ISO-8859-1,则数据库取出的中文没问题,但是从"makxml.jsp?ROOT=<class><ID>default</ID><bh>root</bh><name>论坛区</name><ssbt>not</ssbt><havesubnode></havesubnode></class>"传来的参数中"论坛区"就变成了乱码。
2.如果charset=charset=gb2312",则传来的参数中文显示没问题,但是从数据库取数的中文又有问题。
...全文
17 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang1221987654 2003-08-20
  • 打赏
  • 举报
回复
谢谢各位!按照farmer0512(风总是朝我吹) 说法已经可以了,太感谢各位了。我的邮箱:yaba4@sohu.com,非常愿意和大家交朋友.
farmer0512 2003-08-20
  • 打赏
  • 举报
回复

sqlstr=new String(sqlstr.getBytes("ISO-8859-1"),"gb2312");
Headstr=new String(Headstr.getBytes("ISO-8859-1"),"gb2312");
注释掉看看。
wspsc 2003-08-20
  • 打赏
  • 举报
回复
把你的 xml 也做一下编码处理:<xml version="1.0" encoding="GB2312">
yang1221987654 2003-08-20
  • 打赏
  • 举报
回复


<%@ page contentType="text/xml;charset=ISO-8859-1"%>
<%@ 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"%>
则数据库的又取不出来,
我已经改了,还是不行。
pzl686 2003-08-20
  • 打赏
  • 举报
回复
在第一次调用request.getParameter()前加上
request.setCharacterEncoding("GB2312")试试
yang1221987654 2003-08-20
  • 打赏
  • 举报
回复
在javabean中 我已经写成url ="jdbc:mysql:///test?useUnicode=true;characterEncoding=ISO8859_1",是不是一定要改成gbk,
我试试,谢谢!
farmer0512 2003-08-20
  • 打赏
  • 举报
回复
如果你是采用javabean做数据库连接的话还需要修改bean里的mysql连接语句
DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=GBK");
yang1221987654 2003-08-20
  • 打赏
  • 举报
回复
这是一个树的递归公共jsp(用xml作中转的),以前用sqlserver一点事都没有
monbit 2003-08-20
  • 打赏
  • 举报
回复
??那可就有意思了,但是我不明白你怎么用text/xml这个类型亚?你这个不是应该是jsp么?应该是text/html吧
yang1221987654 2003-08-20
  • 打赏
  • 举报
回复
老兄我已经写了这样的句子,还是不行
Headstr=new String(Headstr.getBytes("ISO-8859-1"),"GBK");
monbit 2003-08-20
  • 打赏
  • 举报
回复
啊,不好意思,是iso-8859-1,刚刚写错了,呵呵
monbit 2003-08-20
  • 打赏
  • 举报
回复
呵呵,从页面读来得字符串我们叫他s,那么要是想得到result(没有乱码的中文字符串)应该这样:
String result = new String(s.getBytes("iso-8851-1"),"gb2312");
注意这个方法需要try....catch
把这个result扔到数据库就行了

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧