ugrás a tartalomhoz

PHP Excel Reader vs ASCII --> UTF-8 probléma

fchris82 · 2010. Szep. 2. (Cs), 19.47
Belefutottam egy problémába, amit meg is oldottam, gondoltam leírom, hátha kell majd még vkinek. Az egyik projektünkhöz kell excel feltöltő, ahol a feltöltött excel táblát értelmezve kell adatokat bevinni az adatbázisba. A probléma az, hogy cellánként eltérhet a karakterkódolás!
A http://code.google.com/p/php-excel-reader/ osztály pedig ISO-5589-X esetén egy az egyben visszaadja azt, amit talál, ami nekem értelemszerűen nem túl praktikus, ha egyszer minden UTF-8-ban van tárolva. A kapott excel tábla szerencsére kellően össze-vissza van. Az alábbi kiegészítést aplikáltam bele:
1120. sor:
$retstr = ($asciiEncoding) ? $this->_encodeAscii($retstr) : $this->_encodeUTF16($retstr);
És a fájl végére pedig hozzáírtam ezt:
  function _encodeAscii($string) {
		$result = $string;
		if ($this->_defaultEncoding){
			switch ($this->_encoderFunction){
				case 'iconv' :	 $result = iconv('ISO-8859-1', $this->_defaultEncoding, $string);
								break;
				case 'mb_convert_encoding' :	 $result = mb_convert_encoding($string, $this->_defaultEncoding, 'ISO-8859-1' );
								break;
			}
		}
		return $result;
  }
Így a visszaadott string mindenképpen az általunk óhajtott lesz - jelen esetben UTF-8.