建了一个php页面
头文件是header("Content-Type:text/html;charset=gb2312");
header( "Content-type:application/octet-stream "); 
header( "Accept-Ranges:bytes "); 
header( "Content-type:application/vnd.ms-excel ");   
header( "Content-Disposition:attachment;filename=test.xls ");
用来生产excel的。
然后sql语句
用table循环列出来。问题是,sql查询出来的内容少的话显示正常的
内容一多,就乱码了。
生成的excel再用网页预览查出来编码是土耳其语。这个是怎么回事啊?!

解决方案 »

  1.   

    浏览器浏览首先要更改浏览器浏览编码为你php汉字所在页的编码,而excel因为在中国windows默认是汉化的所以多数是gbk的,你需要将数据转成gbk的然后在excel出来例如:$table = '<table>';
    ...
    $table .= '</table';
    iconv($table, ...);excel导出
      

  2.   

    我现在改成了像这样的
    echo iconv('UTF-8','GB2312',$row1['Mat_name']);
    可是中文不显示了,英文数字显示出来了。
      

  3.   

    excel导出一般都要通过iconv进行转码!
      

  4.   

    我mysql里用gb2312就输不进中文
    显示错误为:#1366 - Incorrect string value: '\xB5\xCF\xB5\xCF' for column 'a' at row 1 数据库用utf-8的话,页面上导出excel有时用iconv有用,有时用iconv导出还是乱码。
    都不知道怎么办了?!
      

  5.   

    用utf-8的话
    是不是导出excel的时候还有转换成gb2312呢?
    我试了下还是乱码啊
      

  6.   

    数据库用utf-8
    网页编辑也用utf-8
    生成excel的时候,当直接echo ‘中文'的时候,可以显示的,
    而当echo数据库的数据时候就显示乱码了。
      

  7.   

    content-type只有一个好吗 也就是说你只有最后的一个生效了