之前曾经写过一遍关于PHP读取EXCEL时出现中文乱码的解决办法的文章,里面给出一个函数,可以进行编码转换,不过
那个方法不是太好,每次都得对单元格使用那个函数,而且偶尔还是会有乱码。
原理就不分析了,直接给出解决办法。
其实我用的EXCEL读取类类名是Spreadsheet_Excel_Reader,它本身支持设置输出的编码,以前一直没发现。
设置方法:
$myReader = new Spreadsheet_Excel_Reader(); $myReader->setOutputEncoding('GBK'); //GBK或者GB2312 $myReader->read("1.xls");
相比原来只添加了第二行代码,而且一劳永逸。
也有人说这样设置
$myReader = new Spreadsheet_Excel_Reader("1.xls",true,"GBK");
经测试,不管用,可能这个类的版本问题吧。
另外附上PHP excelreader类的下载链接