t_char是角色信息表
里面有2个字段,一个是id,一个是name(名字)
数据库是utf8,表是utf8,字段也是utf8
不过系统写入name里面的中文是latin1编码的字符navicat8在连接属性上取消use mysql character set,能正常看到name字段所有的中文字符现在的问题是我使用navicat8从原始数据库导出了数据库,然后导入到了本机。因为在连接属性上取消了使用mysql字符集,所以导入以后的中文都是乱码了,不知道采用了什么格式……另外要命的是一个不小心给把原始数据库给删除了,包括导出文件也给删除了。PS:可恶的navicat,在删除备份文件的时候根本不放回收站,连文件恢复工具都找不回来备份文件 -_-!我现在只有努力的实现解决这个编码的问题,如果通过编码转换实现恢复原有的数据库……
真诚求教了,求教所有热心的兄弟姐妹帮帮忙了,谢谢,留下联系方式:QQ 514400分不是问题……200求助,的确等知道解决方式的朋友救急了,先谢谢了啊

解决方案 »

  1.   

    1:打开终端,mysqld,输入用户名,密码,选择数据库后:
    mysql>SET NAMES 'utf8';
    mysql>select * from mytable limit 0,10;
    mysql>SET NAMES 'iso98';
    mysql>select * from mytable limit 0,10;
    mysql>SET NAMES '你知道的其他字符集';
    mysql>select * from mytable limit 0,10;
    。。
    直到你看到中文,就一切OK了,剩下的工作就不用我说了吧。2:下述方法不太好用。
    你会写程序吗?(不是sql程序)
    测试一下:
    我给你个PHP程序(其他程序类似,改写一下即可),你测试下看看,直到你能看出中文来,就一切OK了.// 数据链接部分自己写吧。
    $link = 你的数据库链接;
    mysql_select_db($mydb, $link);mysql_query("SET NAMES 'utf8'",$link); //关键是这里,我给了个utf8字符集,你用utf8替换成你知道的字符集.$sql = "select * from mytable limit 0,10 ";
    $results = mysql_query($sql,$link);
    $allcount = $this->num_rows($results);
    if($allcount > 0)
    {
       for(;$count < $allcount; $count++)
       {
    $data[$count] = $this->fetch_array($results);
       }
    }
    print_r($data);