PHP發展了不少,現在pear用起來很方便,其中就有相關的class來讀取Excel文件裡面的內容,如果不想使用pear的話,可以考慮使用excel_class.php,google一下,可以找到這個class的source code下載,也能找到基本的example code,用起來很方便。
在PHP編碼轉換時需要注意的是,從Excel裡面讀取出來的屬於UTF-16LE編碼,如果在移動應用中使用excel_class,則需要注意,因為通常手機都是支持UTF-8編碼,其中就涉及到編碼的轉換。
例如我使用
echo $return[Sheet2][0][0];
來顯示第1行第1列裡面的內容,原本內容是“開始”,使用PHP在web上顯示的時候也確實是“開始”,但是查看網頁的源代碼是
开始
其中&#是為了在網頁上顯示,24320和22987的十六進制表示則是“開始”的UTF-16LE編碼。
那麼我們需要做的就是將這個UTF-16LE編碼轉換為UTF-8編碼。
首先打開excel_class.php,找到函數uc2html, 將函數中的代碼注釋掉,直接將參數返回, 即改函數不做任何操作。
function uc2html($str) {
return $str;
}
接下來使用PHP中提供的函數mb_convert_encoding來將UTF-16LE轉換成UTF-8。
echo mb_convert_encoding($return[Sheet2][0][0], 'UTF-8', 'UTF-16LE');
到此,即完成了UTF-16LE到UTF-8的PHP編碼轉換。