使用PHP读取XLS文件时的字符编码问题

时间:2009-09-23 23:48:26

标签: php excel character-encoding xls iconv

我正在使用PHP-Excel-Reader库来阅读一些XLS文件并立即遇到此问题:

  

PHP注意:iconv() [function.iconv]:在第1718行的C:\ web \ docs \ housing \ excel_reader2.php中的输入字符串中检测到不完整的多字节字符

有问题的一行是:

$result = iconv('UTF-16LE', $this->_defaultEncoding, $string);

之前我已经添加了一些调试信息来帮助诊断问题:

var_dump($string);                   // string(10) "A�r�i�a�l�"
echo bin2hex($string) . "\n";        // 41007200690061006c00
echo $this->_defaultEncoding . "\n"; // UTF-8

我尝试将_defaultEncoding更改为任意数量的随机字符集,但显然没有帮助。

如果有人有任何线索,请提供帮助!

3 个答案:

答案 0 :(得分:3)

我意识到这是一篇旧帖子,但要检查的一件事是你的excel文件中是否有任何链接。我遇到了完全相同的问题,它通过从excel文件中删除任何超链接来解决。

答案 1 :(得分:1)

因为这是一个警告你可能会忽略它试试这个:

$ result = @iconv('UTF-16LE',$ this-> _defaultEncoding,$ string);

答案 2 :(得分:0)

尝试:

$result = iconv('UTF-16LE', $this->_defaultEncoding . "//IGNORE", $string);