2012-02-27 43 views
1

有没有人曾经使用过php_writeexcel(http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/)?PHP writeexcel和UTF-8支持

我想知道是否有一个简单的方法来启用utf-8的支持。 php_writeexcel出口HTML到Microsoft Excel文件,但它无法显示某些字符:

http://pastebin.com/AgVpph7F

也许我可以用一些PHP函数解决这个问题?

感谢您的帮助!

+0

您的字符串有可能是UTF-8以外的其他编码。你可以发布'bin2hex($ string);'的输出。 – spencercw 2012-02-27 22:27:07

+0

它在这里:c497c48dc5a1c48dc4afc499c5a1c48dc5abc5b3c3bcc3b3 – Juozas 2012-02-27 22:42:33

+0

那好像是有效的。对不起,我不能真正帮助Excel的具体东西。 – spencercw 2012-02-27 22:46:22

回答

0

Php_writeexcel是Perl模块Spreadsheet::WriteExcel的一个端口。但是,该端口是在底层Excel文件格式不支持Unicode字符串的时候。

Spreadsheet :: WriteExcel的后来的(2.xx)版本对Unicode有原生支持,但它们尚未被移植到PHP。

因此,您将无法使用php_writeexcel处理Unicode字符串。

0

这不是一个完美的解决方案,但iconv会转换一些这些字符。

http://www.php.net/manual/en/function.iconv.php

您可以根据自己想要的不支持的字符进行处理:

iconv('UTF-8', 'ISO-8859-1//IGNORE','ėčščįęščūųüó');

输出:UO

iconv('UTF-8', 'ISO-8859-1//TRANSLIT','ėčščįęščūųüó');

输出:??????? 012

1

对于带有特殊字符的字段(例如法语),我使用utf8_decode()来使特殊字符正确显示。