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:
  1. $retstr = ($asciiEncoding) ? $this->_encodeAscii($retstr) : $this->_encodeUTF16($retstr);  
És a fájl végére pedig hozzáírtam ezt:
  1. function _encodeAscii($string) {  
  2. $result = $string;  
  3. if ($this->_defaultEncoding){  
  4.     switch ($this->_encoderFunction){  
  5.         case 'iconv' :   $result = iconv('ISO-8859-1'$this->_defaultEncoding, $string);  
  6.                         break;  
  7.         case 'mb_convert_encoding' :     $result = mb_convert_encoding($string$this->_defaultEncoding, 'ISO-8859-1' );  
  8.                         break;  
  9.     }  
  10. }  
  11. return $result;  
  12. }  
Így a visszaadott string mindenképpen az általunk óhajtott lesz - jelen esetben UTF-8.