PHP編碼轉(zhuǎn)換在Excel讀取中的作用體現(xiàn)
PHP編碼轉(zhuǎn)換事宜個(gè)比較基本的知識(shí)點(diǎn),但是對(duì)于大多數(shù)初學(xué)PHP語言的人來說,往往會(huì)忽略掉它的重要性。我們今天就來具體講解PHP編碼轉(zhuǎn)換在Excel讀取中的作用體現(xiàn)。#t#
PHP發(fā)展了不少,現(xiàn)在pear用起來很方便,其中就有相關(guān)的class來讀取Excel文件里面的內(nèi)容,如果不想使用pear的話,可以考慮使用excel_class.php,google一下,可以找到這個(gè)class的source code下載,也能找到基本的example code,用起來很方便。
在PHP編碼轉(zhuǎn)換時(shí)需要注意的是,從Excel里面讀取出來的屬于UTF-16LE編碼,如果在移動(dòng)應(yīng)用中使用excel_class,則需要注意,因?yàn)橥ǔJ謾C(jī)都是支持UTF-8編碼,其中就涉及到編碼的轉(zhuǎn)換。
例如我使用
echo $return[Sheet2][0][0];
來顯示第1行第1列里面的內(nèi)容,原本內(nèi)容是“開始”,使用PHP在web上顯示的時(shí)候也確實(shí)是“開始”,但是查看網(wǎng)頁的源代碼是
开始
其中&#是為了在網(wǎng)頁上顯示,24320和22987的十六進(jìn)制表示則是“開始”的UTF-16LE編碼。
那么我們需要做的就是將這個(gè)UTF-16LE編碼轉(zhuǎn)換為UTF-8編碼。
首先打開excel_class.php,找到函數(shù)uc2html, 將函數(shù)中的代碼注釋掉,直接將參數(shù)返回, 即改函數(shù)不做任何操作。
function uc2html($str) {
return $str;
}
接下來使用PHP中提供的函數(shù)mb_convert_encoding來將UTF-16LE轉(zhuǎn)換成UTF-8。
echo mb_convert_encoding($return[Sheet2][0][0], 'UTF-8', 'UTF-16LE');
到此,即完成了UTF-16LE到UTF-8的PHP編碼轉(zhuǎn)換。