想获取A.com的数据,于是通过fsockopen GET方式去获取。情况:A.com的网页编码是utf-8,本地制作的A.php也是utf-8(用于获取),MYSQL数据库也是utf-8.问题:A.com页面数据获取成功,也切割成了数组,同时print_r()显示中文正常,但保存进MYSQL却是乱码了。为什么呢??关于MYSQL,数据表已经使用很长时间了,是没问题的。使用
mb_convert_encoding($value,'utf-8',mb_detect_encoding($value));
或者
iconv("ISO-8859-1", "UTF-8", $value);都是页面打印(print_r())的时候正常,但保存进MYSQL却是乱码??请教各位高手,有碰到类似问题的人吗?(这个其实是个小偷程序)

解决方案 »

  1.   

    應該是編碼的問題,仔細檢查每個細節你將插入數據的SQL放到數據庫執行看是不是亂碼
      

  2.   

    可以检查一下返回字串的编码if(如果不正确){socket时要可指定一下本服务器的编码//
    }else{
    看你程序文件的本身编码存数据库时,set names '文件本身编码'}
      

  3.   

    它原页面是utf-8,用mb_detect_encoding($value)返回也是utf-8。连接数据库也有使用SET NAME 'UTF-8'。
    这个问题好奇怪啊。真是的!!!
      

  4.   

    页面 meta 和 header 一下 utf-8 mysql_query( "set names utf8" ); // 不是 utf-8再不行的话,直接将值mb_convert_encoding($value,'utf-8');
      

  5.   

    mb_convert_encoding($value,'utf-8','gb2312');
      

  6.   


    哈哈,你是对的。原因是我把utf8弄成了utf-8,改成utf8存进数据库就OK了。啊呀,弄了我一天啊,不断的调试测试!!哈哈