Jestem poczatkujacym.

Importuje plik CSV z przelewami z banku, skryptem jak nizej. Po imporcie w bazie znajduje wszystkie dane urwane w miejscu wystepowania polskiego znaku. Przykladowo "Jan Bóbr" -> "Jan B". Co jest tego przyczyna?

  1. $fh = fopen($filename, 'r');
  2. $row = 1;
  3. while (($data = fgetcsv($fh, 1000, ";")) !== FALSE) {
  4. $num = count($data)-1;
  5. $row++;
  6. for ($c=0; $c < $num; $c++) {
  7. $value = str_replace(" ", "", trim( $data[$c], '"\''));
  8. $csv[($row-1)][$c] = $value; <------ zmienna zawiera całe słowo z polskimi znakami
  9. } //end of for
  10. // Writting to transfer
  11. $t_volume = str_replace( ",", ".", $csv[($row-1)][6]);
  12. $t_volume2 = str_replace( " ", "", $t_volume);
  13. $this->Transfer->set(array(
  14. 'destination_bank' => 'mBank',
  15. 't_date' => $csv[($row-1)][0],
  16. 't_acounting_date' => $csv[($row-1)][1],
  17. 't_side' => $csv[($row-1)][2],
  18. 't_title' => $csv[($row-1)][3],
  19. 't_sender' => $csv[($row-1)][4],
  20. 't_account' => $csv[($row-1)][5],
  21. 't_volume' => $t_volume2
  22. ));
  23. $this->Transfer->save(); <--- po zapisaniu juz jest uciete, To jest CakePHP
  24. $this->Transfer->clear();
  25. //end Writting to transfer
  26. }
  27. fclose($fh);
  28.  


Konfiguracja tabeli jest taka sama jak w calym projekcie

  1.  
  2. CREATE TABLE IF NOT EXISTS `transfers` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `destination_bank` varchar(30) CHARACTER SET ucs2 COLLATE ucs2_polish_ci DEFAULT NULL,
  5. `t_date` date DEFAULT NULL,
  6. `t_acounting_date` date DEFAULT NULL,
  7. `t_side` varchar(30) CHARACTER SET ucs2 COLLATE ucs2_polish_ci DEFAULT NULL,
  8. `t_title` varchar(250) COLLATE utf8_polish_ci DEFAULT NULL,
  9. `t_sender` varchar(300) COLLATE utf8_polish_ci DEFAULT NULL,
  10. `t_account` varchar(28) COLLATE utf8_polish_ci DEFAULT NULL,
  11. `t_volume` int(11) DEFAULT NULL,
  12. `user_id` int(11) DEFAULT NULL,
  13. `import_date` date DEFAULT NULL,
  14. `account_id` int(26) DEFAULT NULL,
  15. `valid` int(1) DEFAULT NULL,
  16. `created` date DEFAULT NULL,
  17. `modified` date DEFAULT NULL,
  18. PRIMARY KEY (`id`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=309 ;
  20.  


Czy szukac w konfiguracji servera Apache, czy konfiugracji Frameworku, czy w skrypcie jakis blad? Ogolnie polskie znaki się poprawnie wyświetlają w apkacji, Jak się wprowadza polskie znaki przez jakis formularz, to po POST w bazie jest prawidłowo. Baza jest mysql, pola są skonfigurowane, tak by osblugiwać polskie znaki.