PHP Excel Reader vs ASCII --> UTF-8 probléma
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:És a fájl végére pedig hozzáírtam ezt:Így a visszaadott string mindenképpen az általunk óhajtott lesz - jelen esetben UTF-8.
■ 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);
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;
}