Witam, wiem, że podobne tematy już się pojawiały, jednak mój problem <<wydaje mi się>> bardziej skomplikowany dlatego pozwolę sobie go przedstawić w osobnym wątku.
Całość wygląda tak, że pobieram dużą ilość rekordów z pliku excel przy pomocy biblioteki PHPExcel.
- function generuj () {
- require_once ’Excel/reader.php’;
- $xls = new Spreadsheet_Excel_Reader();
- $xls->setOutputEncoding(’cp1250′);
- //$data->setOutputEncoding(’UTF-8′);
- $xls->read(’reklamacje-3.xls’);
- for ($i = 2; $i <= $xls->sheets[0][’numRows’]; $i++) {
- for ($j = 1; $j <= $xls->sheets[0][’numCols’]; $j++) {
- if ($j == 4 || $j == 7) {
- $tymczas = $xls->sheets[0][’cells’][$i][$j];
- echo mb_detect_encoding($tymczas);
- $tablica = explode(„/”, $tymczas);
- $tablica_testowa[$j] = $tablica[2] . ’-’ . $tablica[1] . ’-’ . $tablica[0];
- } else {
- $tablica_testowa[$j] = strtr($xls->sheets[0][’cells’][$i][$j], „'”, ” „ );
- }
- //$komorka[$i][$j] = $xls->sheets[0][’cells’][$i][$j];
- }
- echo '<pre>’;
- // print_r($tablica_testowa);
- echo '<pre>’;
- db_connect();
- $ins = @mysql_query(„INSERT INTO testowa SET numer =’$tablica_testowa[1]’ , nazwa=’$tablica_testowa[2]’, nazwaspr=’$tablica_testowa[3]’, datawpl =’$tablica_testowa[4]’, status =’$tablica_testowa[5]’, decyzja =’$tablica_testowa[6]’, datadec =’$tablica_testowa[7]’, kwota =’$tablica_testowa[8]’, tresc =’$tablica_testowa[9]’, przyczyna =’$tablica_testowa[10]'”);
- }
- // echo '<br />’;
- /// echo '<pre>’;
- //print_r($xls);
- }
Całość działa świetnie po za polskimi znakami. Użyłem funkcji mb_detect_encoding do sprawdzenia kodowania. I ku mojemu zdziwieniu nie pojawia się cp1250 zadeklarowane wyżej tylko ACSII. Próbowałem użyć iconv do zmiany kodowania na np utf-8 ale nie działa. Po zapisie do bazy z wszystkimi chyba możliwymi metodami porównywania napisów brak polskich znaków.
Dodam, że serwer to środowisko serwer ubuntu z zainstalowaną bazą bez dodatkowych konfiguracji. Czy ktoś z was może mi pomóc w temacie? Będę wdzięczny za każdą wskazówkę, jeżeli potrzeba więcej informacji wszystko dokładnie mogę opisać.