demo就不加了。。下载的PHPExcelParser程序包中含有demo源码.
我的采用的是Utf8字符集。。
我们读取后输出的中文数据都为类似:
宝石 (宝石)这样类型的数据。。
其显示是正常的,只不过他是采用了以文本格式表示的unicode代码。
在includes.inc中定义了一个get函数,
定义如下:
所有读出数据都要在这里处理
在PHPExcelParser中我们可以找到其 uc2html函数定义为 :
通过上面个函数结合demo。我们不难看出:一个unicode编码的串经过uc2html后已经是文本 形式的串了 。 修改uc2html函数为 :
如果您和我一样采用Utf-8编码。将: $ret .= iconv("utf-8","gb2312",u2utf8($charcode)); 改为: $ret .= u2utf8($charcode); 解决此问题的关键为u2utf8函数:
已经搞了一周了。。今天夜里终于搞定了这个东东。。 其实个人认为PHPExcelParser是所有读取excel文件最好用的一款php开源程序包。但是 上面的问题折腾了我好长时间。。希望通过本个教程。。对碰到同样的问题的兄弟们有所帮助 。。 逸飞敬上 2008-01-03夜 凌晨 韩志兴添加:这样之后可以以UTF-8方式存储到数据库中,数据库中是明文显示而不是内码。 之后注意的是浏览器的编码方式,这个地方有可以自动让浏览器选择编码方式的两种办法: 一个是header("Content-Type:text/html; charset=utf-8"); 再就是xhtml里大家都熟悉的 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这样就可以解决改了上面代码之后还会看到乱码的情况,其实上面代码是已经实现目的,但是不知道为什么,改了上面代码之后再浏览就会显示乱码,这个时候查看浏览器的编码,可能会看到不是UTF-8的编码方式被勾选。 另外测试的时候发现在其他页面显示数据库中内容的时候需要用mysql_query("set names utf8"); 不然即使页面编码是UTF-8,也会显示????(问号)。 还待进一步学习…………………… ---------------------------------------------------------------------------------------------------------/ 这里还有一个问题: 就是PHPExcelParser里使用ereg_replace()函数的地方因为正则表达式的缘故,像"_"这样的符号会被替换成”“(就是直接删掉这些特殊的符号),所以会有在最后一步看到类似表名错了的种种问题。 只要把正则表达式的格式写好了就可以解决这个问题。 这里还有php里ereg,preg等使用正则表达式的函数待研究…………………………
---------------------------------------------------------------------------------------------------------
如果想插入数据后,也能显示中文:执行mysql_query
之前 加入一行代码 |