public String outStr(String strValue)
{
try
{
String strBuffer=strValue;
byte[] byteBuffer=strBuffer.getBytes("ISO8859-1");
String strReturn=new String(byteBuffer,"gb2312");
return strReturn;
}
catch(Exception e)
{
return null;
}
}

解决方案 »

  1.   

    你搜索一下以前的帖子。
    你的中文问题,在将数据保存入Mysql就出现问题了。
      

  2.   

    我从网上找的,用了servlet过滤器,。你找找啦
      

  3.   

    最好的解决方发:
    步骤一:用过滤器
    步骤二:把数据库编码方式设为utf-8(数据库支持的话,否则只能gb2312,gbk等)
    步骤三:页面也设为utf-8(与数据库保持统一)
    另:如果不用过滤器则要在把数据插入DB之前作转换iso8859_1-->utf-8(要存的编码),
    从DB里取数据时则不再需要转换了。
      

  4.   

    感谢各位答复,我用了 gjd111686(数字金刚) 的方法:============================
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <html>
    <head>
    <title>影币管理</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link href="css/css.css" rel="stylesheet" type="text/css">
    </head>
    <body topmargin="20" leftmargin="15" bgcolor="#D6EF7E">
    中文测试::::::
    <% 
    Class.forName("org.gjt.mm.mysql.Driver");
    out.println("mysql test!");
    Connection conn=DriverManager.getConnection("jdbc:mysql://202.195.240.183:3306/media_45du","media_45du","45du_manage");
    out.println("success");
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select * from film limit 10");
    rs.next();
    out.print(rs.getString("film_id")+"   "+rs.getString("film_name")+"<br>");
    String strBuffer=rs.getString("film_name");
    byte[] byteBuffer=strBuffer.getBytes("ISO8859-1");
    String strReturn=new String(byteBuffer,"gb2312");
    out.println("next:");
    out.println(strReturn);out.println("中文测试");
    rs.close();
    stmt.close(); 
    conn.close();
    %>
    <body>
    </html>===========================
    显示如下:========================
    中文测试:::::: mysql test! success 4339   ??
    next: ?? 中文测试 ===============还是乱码!resin对中文的支持应该是很好的啊,数据库中的数据用phpadmin调出来中文显示很正常不存在乱码,在原来的linux7.2下的显示也很正常啊,程序都没有做任何改动,实在是不明白!!!我用的数据库是mysql,用过滤器是不是很麻烦?
      

  5.   

    为解决这个问题,可在每个JSP的页面开始处加上<%@ page language=“Java” contentType=“text/html; charset=gb2312”%>。不过,这还不够,虽然这时显示了中文,但是发现从数据库读出的字段变成了乱码。经过分析发现: 在数据库中保存的中文字符是正常的,数据库用ISO8859-1字符集存取数据,而Java程序在处理字符时默认采用统一的ISO8859-1字符集(这也体现了Java国际化思想),所以在数据添加的时候Java和数据库都是以ISO8859-1方式处理,这样不会出错。但是在读取数据的时候就出现问题了,因为数据读出也采用ISO8859-1字符集,而 JSP的文件头中有语句<%@ page language=“Java” contentType=“text/html; charset=gb2312”%>,这说明页面采用GB2312的字符集显示,这样就和读出的数据不一样。这时页面显示从数据库中读出的字符是乱码,解决的方法是对这些字符转码,从ISO8859-1转成GB2312,就可以正常显示了。这个解决办法对很多平台具有通用性,读者可以灵活运用。 
      

  6.   

    建议这个网址看看代码乱码http://www.roulong.com/draco/cms/article.jsp?ENTITYID=160
      

  7.   

    这个问题我前几天也遇到过,郁闷了好久,我用的是red hat 7.3,原因是在linux 上有个国际化(i18N)问题,当然还有LANG的问题,两个最好都改掉,还有程序里当然也要转码iso8859-1,如果还有问题,发信给我:[email protected]