把你的连接字符串改成这样~
jdbc:mysql://www1:3306/ISOA?useUnicode=true&characterEncoding=gb2312

解决方案 »

  1.   

    这个东西只和数据库的编码有关
    oracle得是utf-8
    不过 存到数据库当中是乱码 没什么吧
    只要你读出来显示是中文不就行了终极的办法是存字节
    然后取出来转化成中文
      

  2.   

    to jokerjava(冷血) :能说的详细些吗?比如说我这种情况到底应该如何改的问题
      

  3.   

    to: accp(accp)我在连接的bean中这样写的:
     String url ="jdbc:mysql://ip地址/数据库名?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312";
      

  4.   

    编码转换啊~~~
    和JSPSMARTUPLAOD没有关系~~
    我也遇到过此类问题!!
    给你一个BEAN!!
    package com.db;import java.lang.*;
    import java.util.*;
    import java.lang.Integer;
    import java.sql.*;public class CharCode{public static String UnicodeToChinese(String s){ 
    try{ 
    if(s==null||s.equals("")) return ""; 
    String newstring=null; 
    newstring=new String(s.getBytes("ISO8859_1"),"gb2312"); 
    return newstring; 

    catch(Exception e) 

    return s; 

    } public static String ChineseToUnicode(String s){ 
    try{ 
    if(s==null||s.equals("")) return ""; 
    String newstring=null; 
    newstring=new String(s.getBytes("gb2312"),"ISO8859_1"); 
    return newstring; 

    catch(Exception e) 

    return s; 


    }
      

  5.   

    入库前调用UnicodeToChinese方法!!
    不行给我发邮件!!
      

  6.   

    to donggongshu
    如何调用unicodeToChinese还有我那个bean中,也写了如下的东西:
    public String tochinese(String str){
         if(str==null){
         str  ="";
         }
         else{
             try {
            str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
             }
             catch (Exception ex) {
             }
         }
         return str;
      }不过没有 chinesetounicode这一部分,老兄的email是多少呀
      

  7.   

    那就不应该了,这种事不能急,没有万能的~
    我是连接字符串用
    jdbc:mysql://www1:3306/ISOA?useUnicode=true&characterEncoding=gb2312
    再在每个页面都加上
    <%@page contentType="text/html;charset=gb2312"%>
    <%request.setCharacterEncoding("gb2312");%>
    这样进出数据库都不用转了,也没问题~
    在Win或者是Linux下都没问题,也换过很多机器,对这种方案还是比较满意~
    半年的经验,呵,
    你要还有问题换一个驱动试试,我以前碰到过驱动出问题~
      

  8.   

    [email protected] 
    你直接把我给你的代码存为WEB-INF/classes/com/db/CharCode.java
    编译后在JSP页面中用
    <%
    <jsp:useBean id="CharCode" class="com.string.CharCode"/>
    String a=CharCode.UnicodeToChinese(a);
    //入库~~%>
      

  9.   

    多谢,dongdongshu 可惜,我事过了,还是乱码。我就不知道了,同样是一个数据库,我在本地机器上的脚本执行就没有乱码的问题,而我把同样的脚本放到数据库所在的服务器上。执行的时候就是乱码。可能是什么原因哪?
      

  10.   

    是呀。
    不行了,对了如何看我的mysql是数据存取什么编码的
      

  11.   

    你联结字符串的编码,应该这样: characterEncoding=8859_1试试看!!!mysql对中文支持很好,没什么问题的,还搞不定就留言给我..
      

  12.   

    同意 accp(accp) ,我也是这么做的!
      

  13.   

    String ss=new String(s.getBytes("ISO8859-1"));
    s就是你需要转换的字符,换过之后再往数据库里写。
      

  14.   

    定义一个函数,存入数据库之前,用它进行转化。
    public static String toChinese(String strvalue)
       {
             try{
                 if(strvalue==null)
                    return null;
                 else
                 {
                    strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
                    return strvalue;
             }
             }catch(Exception e){
                   return null;
             }
       }
    如:String name=toChinese(request.getParameter("name"));
      

  15.   

    有万能的
    str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
    假设这句话能正确的得到中文  应该可以
    byte[] b = str.getBytes("gb2312");
    然后把byte[] b存入数据库  这没问题吧  blob类型
    然后从数据库中取出来 这也应该没问题吧
    str = new String(b, "gb2312");是不是万能的 呵呵
      

  16.   

    那你最上面那句得不到正确的中文呢~
    并且你来回转,烦不烦呀~
    建议大家看看我那种方案~
    我试过Redhat7.1,7.2,8.0都没问题,也不管红帽是中文还是英文
      

  17.   

    str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
    这句跟数据库一点关系都没有
    你还得不到中文
    那还要程序员做什么
      

  18.   

    再说了
    如果这句得不到中文
    str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
    那你的方法有什么用
    jdbc:mysql://www1:3306/ISOA?useUnicode=true&characterEncoding=gb2312
    你的这个方法的前提条件不是已经是中文了

      

  19.   

    我也遇到一个字符问题,我想能不能把Tomcat的字符问题完全讨论明白?
    我的问题是:我在数据库转换之前已经把数据转换成GB2312格式,数据库连接用
    jdbc:mysql://www1:3306/ISOA?useUnicode=true&characterEncoding=UTF8,
    但是有些字符不能转换成UTF8格式,比如"中华人民共和国",其中那个"国"字被转换成乱码"?"
    请问是不是jdk并不能完全转换字符?是不是它也有BUG
      

  20.   

    我又没自己说我的是万能的~你能保证这一句一定能得到中文?
    str = new String(str.getBytes("iso-8859-1"),"gb2312") ;我是说有前提条件就不要说万能~
    万能应该是放之四海皆准~
    你说呢
      

  21.   

    to:wance(五)
    那不是JAVA的事,MySql自己不支持Unicode~
      

  22.   

    to:accp(accp)
    可以和你通过QQ讨论一下这个问题吗?
    我的QQ:25488186
      

  23.   

    to:accp(accp)
    如果是Mysql的问题,那么为何有些中文可以很好的以UTF8格式存在数据库,可是有些个别的字符不能正确的存那?比如:我只输入"中华人民",会很好的以UTF8格式存入。并且网页上读去的时候也能转换回来
      

  24.   

    如何看mysql的编码是什么
    你可以下载一个
    EMS MysqlManager(for windows)
      

  25.   

    myFile.saveAs("smartUpload/upload/"+yhlb+yhid+bu+"."+myFile.getFileExt(),0);
      

  26.   

    sorry贴错了,没看清楚
    没发现什么错误
    跟smartUpload没有关系
    如果你在连接数据库时指定了字符集而且用了转码还是不行,那就没辙了
      

  27.   

    是smartupload的问题,我研究了好久了这个问题,在win服务器是没有问题的,在linux下就会有问题,跟数据库一点关系都没有,我用oracle也有这问题,在没有进库前字符已经是乱码,各种转换都不行,都不知道smartupload搞了什么东西进去!谁搞定了请告诉一声。必须是用linux做服务器,并且用smartupload传文件一同传字符的时候可以才好出声啊
      

  28.   

    我以前用unix服务器都没碰到过这问题
    实现跟你的类似阿
      

  29.   

    呕,这么说和smartupload、linux有关了,呵呵.那我也不能不用呀?难道把上传和信息输入分成两部再分别提交?郁闷中
      

  30.   

    呵呵,我投降了。各位兄弟,我不行了,实在不能再拖下去了,只好用两个提交页面来完成了,刚刚测试过,没有问题。没有乱码存在了。我晕呀。同情我吧!!!决定周二结帖!盼望有新的解决方式!!!to  kidd_cen(cen) 老兄的话是对的。嘻嘻。不知道你是否也是和我一样这么对付过去的
      

  31.   

    其实你可以反编译了smartupload的代码,看了它的程序就明白了,它是用getString()方法来取得上传的值,由于linux用的是iso-8859-1所以就会有问题了。
    我是将它的代码反编译了后,自己加了一个转换(:-),你也试试吧
      

  32.   

    再解释一下,它是用request.getInputStream().read(byte[],start , len)来读取值,然后用new String(byte[],start,leng)来转换的,当然会用问题了!!!
      

  33.   

    to cashtang(孤独) :老兄好厉害呀!(我们这里叫嚣张,不过是褒义的),呵呵,如何反编译smartupload呀,有什么好的工具吗?
      

  34.   

    对了,我们编写程序的时候到底哪一步骤什么字符集起作用呀,比如说,request.getParameter接受的汉字,我可以直接显示了。而页面跳转的时候,传递的汉字又变成了乱码?     有没有详细的资料写一写这方面的东西?还有本身我对str = new String(str.getBytes("iso-8859-1"),"gb2312") ;就不明白,本以为出现乱码的时候我就用一下,不行在转换回来,没想到越来越麻烦,呵呵,必须好好弄懂了,有没这方面汉语的介绍?
      

  35.   

    从url接收过来的的中文不需要转换,从上一个表单提交过来的要转换
      

  36.   

    是呀,开始的时候没问题,后来把apache和tomcat整合到一起了,结果出问题了,气死我了。现在url接受的中文就是乱码,我倒
      

  37.   

    如象IBM的developerWorks上有介绍,你看看吧!
      

  38.   

    从浏览器传过来的带汉字的字符串,如果不经过字符集的转换入库时会出现乱码问题,可用
    (str.getBytes("iso-8859-1"),"gb2312") 解决。
    在tomcat(weblogic、resin)+oracle+windows(Linux)下,我全试过,没有问题。