8月16最新线报:002181(粤传媒)这句话的乱码显示为:
8月16最新线报:002181(粤传媒)数字能完全显示,汉字变为三位乱码一开始数据库是用的latin1_general_ci,我发现后改为UTF8但是文字插入数据库后依然是乱码,但是显示在页面上却能正确显示,现在我想截取一部分汉字显示,但是刚检索出来的数据是乱码,截取的位数也是按乱码算的,请问这样有什么办法么?比如:8月16最新线报:002181(粤传媒)这句话我只想显示:8月16最新线报

解决方案 »

  1.   

    如果在数据库连接时,执行setnames(utf8),插入的汉字变成了正确的,但是读取出来却不行了
      

  2.   

    你没读懂我的意思  现在已经全部都设置为UTF8了,我在二楼的留言的意思是,如果在数据库连接时,执行setnames(utf8)后,以前存在的数据读出来就是乱码了,新加的数据是没有问题的。我现在从页面到数据库 数据表及其字段 我都是用的UTF8
      

  3.   

    如果你能保证你的代码(包括php或者html) 和你的数据库使用的是同一种字符编码,那么将不会出现这种情况!
      

  4.   


    character_set_client utf8
    character_set_connection utf8
    character_set_database utf8
    character_set_filesystem binary
    character_set_results utf8
    character_set_server gbk
    character_set_system utf8
    collation_connection utf8_general_ci
    collation_database utf8_general_ci
    collation_server gbk_chinese_ci的确还有两个没改 请问这两个怎么修改
      

  5.   

    以前存进去非utf8,比如gbk,取出来也要是setnames gbk。否则一定乱码的。
    mysql设置latin1_general_ci或者utf8,那只是排序的根据,不是真的把库里的字符转码了。改不了的。
      

  6.   

    你可以写个小程序,用gbk读出来,再mysql_query("SET NAMES UTF8");存进去解决乱码
      

  7.   

    数据库里的旧数据是以错误方式保存的,需要导出后以新编码重导入用BIT_LENGTH测一下数据长度就知道了,
    新的一个汉字3字节,老的6字节详细见此
    http://www.htkou.net/forum/index.php?id=13067
      

  8.   

    mysql_query("SET NAMES 'UTF8'"); 
    mysql_query("SET CHARACTER SET UTF8"); 
    mysql_query("SET CHARACTER_SET_RESULTS=UTF8'"); 加了么?还乱码的话,看看服务器OS呢 Linux的话是UTF8么
      

  9.   

    在执行mysql_query($SQL)之前,请先执行:
    mysql_query('set character_set_client = utf8');
    mysql_query('set character_set_connection = utf8');
    mysql_query('set character_set_results = utf8');
    页面编码和数据库编码都设为UTF-8试试看,我就是这样解决的。
      

  10.   

    谢谢楼上各位 我用javascript解决了我想解决的问题了~~~
    先写个方法
                    <script type="text/javascript">
                        function my_split(s){
                            var str = s.substr(0,17);
                            document.write(str);
                        }
                    </script>
    然后在PHP里面调用$title = "<script type=\"text/javascript\"> my_split(\"$title\")</script>" ;