php把excel导入到mysql中乱码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>数据导入工程</title></head><body><?php      $fname = $_FILES['MyFile']['name'];      $do = copy($_FILES['MyFile']['tmp_name'],$fname);      if ($do)       {           echo"导入数据成功<br>";       } else {          echo "";       }      ?>      <form ENCTYPE="multipart/form-data" ACTION="<?php echo"".$PHP_SELF.""; ?>" METHOD="POST">           <p>导入CVS数据  <input NAME="MyFile" TYPE="file"> <input VALUE="提交" TYPE="submit">           </p>      </form>       <?      error_reporting(0);      //导入CSV格式的文件      $connect=mysql_connect("localhost","root","") or die("could not connect to database");      mysql_select_db("zngift",$connect) or die (mysql_error());      $fname = $_FILES['MyFile']['name'];      $handle=fopen("$fname","r");$mydate = date("Y-m-d H:i:s");while($data=fgetcsv($handle,1000,",")){          $q="insert into hu_msg (cateid,subject,author,postdate,hits,taxis,thumb,ifcheck,mark,brandid,number,m_price,s_price,promotions) values ('$data[0]','$data[1]','admin','$mydate','$data[4]',0,'$data[5]',1,'$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','更多优惠请致电')";    mysql_query($q) or die (mysql_error());      }      fclose($handle);?> </body></html> 那是从网上找的代码,已经能写进数据库了,可是中文全是乱码啊?怎么解决?

第1个回答  2012-02-29
中文乱码问题经常会出现
1、数据库、数据表、字段 编码格式要保持一致
2、如果在doc界面录入数据,要保持当前编码格式与数据表编码格式一致
3、php读取数据显示,要保持文件的编码格式、html页面的编码格式同数据库一致,编码格式为utf-8或gb2312或gbk
4、php连接数据库之后mysql_query('set names gbk');
5、iconv("UTF-8","gbk",$str); 字符转码,保持一致
第2个回答  2012-02-26
注意数据库编码和处理数据的编码一致
如数据库用utf8

那么
iconv("UTF-8","gbk",$str); 读取到的csv数据进行处理
添加数据到数据库就不会出现乱码了本回答被提问者采纳
相似回答
大家正在搜