最近开发一个小项目,用mysql数据库,但是入库的数据都是乱码,在网上搜了各种解决办法都没有解决,现在求助一下大家~在mian函数中,set进中文,但是入库的时候就变成乱码,数据库的字符集已经改了,在连接数据库的字符串上加上那些参数也不成,各位大侠有什么高招啊~

解决方案 »

  1.   

    首先:
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>向DB存数据:
    js里用escape函数取数据,处理后存DB
      
    从库里取出来数据后做这个处理:
    <%!
    public String getStr(String s){
    String str=s;
    try{
    byte b[]=str.getBytes("ISO-8859-1");
    str=new String(b);
    return str;
    }
    catch(Exception e){return null;}
    }        String sTem1 = getStr(rs.getString(1));%>
    然后在js里用unescape函数显示数据。MySQL5.0英文版+日文系统下OK。
      

  2.   

    字母可以吧,如果可以的话,有可能是你在装my sql的时候的问题了,就是在你填密码的前一 个界面里,有个下拉的,你选gab123,它才支持中文的
      

  3.   

    可以使用java实现字符编码的问题
    具体参见http://blog.csdn.net/liufh44/archive/2007/09/30/1808473.aspx
    在这篇文章中,已经对这个问题进行了解决
    欢迎相互交流
      

  4.   

    可以在连接字符串中指定字符集
    jdbc:mysql://134.202.128.200/testdb?   user=guest&password=123456&useUnicode=true&characterEncoding=gb2312
    具体参见
    http://hi.baidu.com/tuhaitao/blog/item/f8ba870a162fb03fb0351d57.html
      

  5.   

      在使用MYSQL时,插入中文字符,经常会出现乱码,中文全被用?代替。
        出现这种情况的原因,多是字符集不匹配造成的。
        在MYSQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。
        插入中文字符时,与之不匹配,就会出现乱码。
        本人使用的是MYSQL 5.0版,并用C#操作MYSQL数据库,当插入中文字符时,发现显示的是乱码。
        初步估计是字符集没有配对。查找后,发现MSYQL默认使用的是latin1,因此将数据库的配置文件中的字符设置改为utf8,并在C#中将中文字符,转为utf8,插入后,仍为乱码。
        MYSQL也支持gb2312,又将MYSQL的字符设置改为gb2312,C#中使用Default,重起MYSQL后,操作仍然无效。
        后想起,虽然将MYSQL的字符集设置为gb2312或utf8,但已经建立的数据库和表,仍采用的是默认的字符集,也即仍为当初的西欧字符集,最好,只得忍痛将数据库删除,重新以gb2312字符集建立数据库和表。
        再用C#插入中文字符后,一切OK。
        
        再安装好MYSQL后,可以手工或使用配置工具,将my.ini文件中的默认字符集改为gb2312,再重新建库和表时,不用再在语句中指定字符集,其默认设置也即为gb2312,可以正常显示中文字符集。 
    ===========================================
    虽然是C#的,LZ试下
      

  6.   

    天下本无事,庸人自扰之。无论是在mysql的sql命令行工具下,还是什么编程环境(java/.net/php/c/python/ruby....),只需先执行set names gb2312 或 set gb2312即可,当然数据库的字符集必须是utf8或gb2312或gbk...
      

  7.   

    http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.html
      

  8.   

    可以参考我的两篇文章:
    http://hi.baidu.com/hexiong/blog/item/16a10ad1b9a015d3572c84b4.html
    http://hi.baidu.com/hexiong/blog/item/a7d5653813ac762397ddd8b5.html
      

  9.   

    肯定是你装数据库的时候选择了其他语言种类,现在java插入的语言选项和你数据库的不同当然会出现乱码啦