2012-02-27 71 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()來使特殊字符正確顯示。