CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

求救:jsp+javaBean的中文乱码问题

楼主AlexHwang(Alex)2003-12-04 00:10:29 在 Java / Web 开发 提问

public   String   ShowWords(String   s,   HttpServletRequest   httpservletrequest,   int   i)  
                  throws   Exception  
          {  
                  String   s2   =   "";  
                  int   j   =   0;  
                  int   k   =   handle.getInt(httpservletrequest,   "Pid");  
                  try  
                  {  
                          String   s1   =   "SELECT   *   FROM   "   +   s   +   "   WHERE   product_id="   +   k   +   "   ORDER   BY   id   DESC";  
                          for(ResultSet   resultset   =   dbconn.ExeQuery(s1);   resultset.next();)  
                          {  
                                  j++;  
                                  s2   =   s2   +   "<table   width=100%   border=0   cellspacing=1   cellpadding=3>";  
                                  s2   =   s2   +   "\t<tr   bgcolor=#FFFFFF>   ";  
                                  s2   =   s2   +   "\t\t<td   width=4%   align=center   valign=middle>"   +   j   +   "</td>";  
                                  s2   =   s2   +   "\t\t<td   width=8%   align=center   bgcolor=eeeeee>作者:</td>";  
                                  s2   =   s2   +   "\t\t<td   width=29%>"   +   resultset.getString("author")   +   "</td>";  
                                  s2   =   s2   +   "\t\t<td   width=13%   align=center   valign=middle   bgcolor=eeeeee>发表时间:</td>";  
                                  s2   =   s2   +   "\t\t<td   width=24%   align=center   valign=middle>"   +   resultset.getString("date_time")   +   "</td>";  
                                  s2   =   s2   +   "\t\t<td   width=8%   align=center   valign=middle   bgcolor=eeeeee>评分:</td>";  
                                  s2   =   s2   +   "\t\t<td   width=14%   align=center   valign=middle><font   color=#FF0000>"   +   Num2Star(resultset.getInt("level"))   +   "</font></td>";  
                                  s2   =   s2   +   "\t</tr>";  
                                  s2   =   s2   +   "\t<tr   bgcolor=#FFFFFF>   ";  
                                  s2   =   s2   +   "\t\t<td   colspan=7>评论:"   +   resultset.getString("content")   +   "</td>";  
                                  s2   =   s2   +   "\t</tr>";  
                                  s2   =   s2   +   "</table>";  
                                  if(j   ==   i)  
                                          break;  
                          }  
   
                          dbconn.CloseConn();  
                  }  
                  catch(SQLException   sqlexception)  
                  {  
                          System.err.println("aq.executeQuery:"   +   sqlexception.getMessage());  
                  }  
                  return   s2;  
          }  
   
  上面的函数返回一个字符串,奇怪的是从数据库中取回的字符串是中文正确的,但是写在函数中的中文返回的却是乱码。  
  怎么解决啊??  
  急 问题点数:100、回复次数:7Top

1 楼lovemory(墨尔)回复于 2003-12-04 07:44:34 得分 20

用getBytes("ISO-8859-1")进行字符转换Top

2 楼51ling(核心问题)回复于 2003-12-04 08:11:19 得分 50

用以下两句语句就没有问题了!!!  
   
  <%@   page   contentType   =   "text/html;charset=gb2312"   %>  
  <%   request.setCharacterEncoding("GB2312");%>Top

3 楼VVV_lucky(*太阳*)回复于 2003-12-04 08:55:01 得分 10

不一定要用GB2312  
  UTF-8对于中日文混合是不错的选择。Top

4 楼dwxq(dawei)回复于 2003-12-04 09:06:31 得分 10

写如库中时不要用转换,从数据库中读出时需要用到进行getBytes("ISO-8859-1")转换Top

5 楼mayafree(我浮躁,所以要认真)回复于 2003-12-04 09:14:40 得分 10

用下面这两个方法在class或jsp中转换:  
  public   static   String   getStr(String   str){  
  try{  
  String   temp_p=str;  
  byte[]   temp_t=temp_p.getBytes("ISO8859-1");  
  String   unicode=new   String(temp_t,"GBK");  
  return   unicode;  
  }  
  catch(Exception   e){  
  System.out.println(e);  
  return   "";  
  }  
  }  
     
    public   static   String   getStr1(String   str){  
    try{  
              String   temp_p=str;  
      byte[]   temp_t=temp_p.getBytes("GBK");  
      String   unicode=new   String(temp_t,"ISO8859-1");  
      return   unicode;  
    }  
    catch(Exception   e){  
    System.out.println(e);  
    return   "";  
    }  
    }  
   
  jsp中必须加:<%@   page   contentType   =   "text/html;charset=gb2312"   %>  
  或<%@   page   contentType   =   "text/html;charset=GBK"   %>Top

6 楼AlexHwang(Alex)回复于 2003-12-04 09:17:03 得分 0

可是我已经试过用下面的函数转换了啊,还是不行。  
  哪位再看看吧,急啊  
  public   String   ISO2GBK(String   s)  
                  throws   Exception  
          {  
                  return   new   String(s.getBytes("ISO8859_1"),   "GBK");  
          }Top

7 楼AlexHwang(Alex)回复于 2003-12-04 09:17:51 得分 0

:<%@   page   contentType   =   "text/html;charset=gb2312"   %>  
  或<%@   page   contentType   =   "text/html;charset=GBK"   %>  
   
  这个我也是添加的。Top

相关问题

  • jsp+JavaBean+mysql4.0 显示中文乱码(急!)
  • jsp中javabean处理后的中文乱码问题
  • JSP 关于中文乱码
  • jsp中文乱码问题。
  • JSP中文乱码,高手请帮忙!!!
  • jsp中文显示乱码问题
  • jsp 中 session 的中文乱码问题
  • eclipse编译jsp中文乱码问题
  • Eclipse中的JSP中文乱码问题
  • JSP的中文乱码问题JSP+Tomcat+Mysql。很怪!!!

关键词

  • 转换
  • 函数
  • 中文
  • unicode
  • s2
  • resultset
  • getbytes
  • getstr
  • iso
  • gbk

得分解答快速导航

  • 帖主:AlexHwang
  • lovemory
  • 51ling
  • VVV_lucky
  • dwxq
  • mayafree

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo