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

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",则传来的参数中文显示没问题,但是从数据库取数的中文又有问题。
...全文
21 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扔到数据库就行了
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

81,092

社区成员

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

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