小弟初学mysql,遇到这样一个问题。数据存放到mysql中后,是乱码,但是通过短信发送给别人的时候,别人能够正常看到。只是存放进mysql的格式不对。mysql中设置的格式是utf8的,那我如何才能让存放到mysql中的字符不是乱码,而且发送给别人以后也不是乱码呢?在什么地方设置格式??

解决方案 »

  1.   

    没太明白,是你用程序处理,mysql里面的东西不乱,但是你用查询工具去查,就乱了?如果是这样,你需要调整查询工具的编码设置。
      

  2.   

    你是在命令行看到的乱码?在查询前执行一下set names gbk;
      

  3.   

    我是通过程序,将内容插入到mysql中的,插入数字的话,在mysql中是正常显示。但是插入文字,在mysql中就是乱码。将那些乱码发送到手机上又是中文的了。
      

  4.   

    在命令行中也是可以正常显示的。到mysql里面了就是乱码了。
      

  5.   

    比如:
    <?php
    mysql_connect('localhost','user','password');
    mysql_select_db('my_db'); //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
    //它的作用是设置本次数据库联接过程中,数据传输的默认字符集
    mysql_query("set names utf8;"); //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
    mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
    ?>
    也就是说:执行mysql_query("set names xxxx");其中xxxx是你网页的编码(charset=xxxx),如果网页中charset=utf8,则xxxx=utf8,如果网页中 charset=gb2312,则xxxx=gb2312
      

  6.   

    mysql_query(sock_inbox,"set names UTF8");
    inbox_results = mysql_store_result(sock_inbox);我执行上面的语句以后,内容变成空的了。
      

  7.   

    把连接字符集改为gbk。或者,在查询前执行:
    set names 'gbk';
      

  8.   

    在命令行中也是可以正常显示的。到mysql里面了就是乱码了。
    --------------------------------------------------------------------
    在命令行是正常的,你怎么判断是乱码?
      

  9.   

    命令行不是mysql里面?另我印象中短信接口都是要gbk的,或许你说的是phpmyadmin乱码,因为你的数据库/表/字段设置是utf8,但实际数据是gbk(windows命令行的编码就是gbk所以显示正常),所以你会看到乱码
      

  10.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码看完这个贴子,或许就明白了。
      

  11.   

    你最好能在数据库与应用层统一下编码方式,不然自己会很乱,转来转去自己弄晕了,
    WEB页面一般会用UTF8编码,你可以建表的时候在后面加上"DEFAULT CHARSET=utf8",应该可以解决
    希望对你有所帮助