我搜索了论坛,看了所有的帖子,没有一个能够解决我的问题,真tm的邪门。
我的mysql是utf8编码,无法更改。现在我用jsp插入中文,在tomcat控制台中显示出来的中文都没有问题,插入到表中就出现了????的乱码,我都快失望了,求大家帮忙了

解决方案 »

  1.   

    http://www.blogcn.com/u/80/4/xp224/index.html
    参考一下 看能不能解决
      

  2.   

    url:
    jdbc:mysql://localhost:3306/dataBase?useUnicode=true&characterEncoding=GBK然后在插入数据库前转换下编码就ok  public String change(String str) {
        String newStr = "";
        try {
          newStr = new String(str.getBytes("ISO8859_1"));
        }
        catch (UnsupportedEncodingException e) {}
        finally {
          return newStr;
        }
      }
      

  3.   

    记住统一编码就行了。utf8,页面utf8,request.setCharacterEncoding("utf8")
      

  4.   

    同楼上
    你的JSP页面包含如下语句:
    <%@page contentType="text/html; charset=utf-8"%>数据库链接添加
    useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_general_ci
    例如:
    jdbc:mysql://localhost:3306/yourdatabase?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_general_ci总之全部统一编码为utf8就是了
    另外你如果直接查询数据库时,最好在查询前先执行如下语句:
    set character_set_connection='utf8';
    set character_set_results='utf8';
    set character_set_client='utf8';
      

  5.   

    终于找到了问题的所在,谢谢各位,现在总结一下我的问题:首先数据库连接的url:
    jdbc:mysql://xx.xx.xx.xx:3306/ft?useUnicode=true&characterEncoding=UTF-8,这里的&不能是&amp;。其次我读取的是utf8格式的csv文件,在读取的时候就要加上转码条件:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file_csv), "UTF-8"));。ok,希望对大家有帮助。