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?
$row = 1; $row++; for ($c=0; $c < $num; $c++) { $csv[($row-1)][$c] = $value; <------ zmienna zawiera całe słowo z polskimi znakami } //end of for // Writting to transfer 'destination_bank' => 'mBank', 't_date' => $csv[($row-1)][0], 't_acounting_date' => $csv[($row-1)][1], 't_side' => $csv[($row-1)][2], 't_title' => $csv[($row-1)][3], 't_sender' => $csv[($row-1)][4], 't_account' => $csv[($row-1)][5], 't_volume' => $t_volume2 )); $this->Transfer->save(); <--- po zapisaniu juz jest uciete, To jest CakePHP $this->Transfer->clear(); //end Writting to transfer }
Konfiguracja tabeli jest taka sama jak w calym projekcie
CREATE TABLE IF NOT EXISTS `transfers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `destination_bank` varchar(30) CHARACTER SET ucs2 COLLATE ucs2_polish_ci DEFAULT NULL, `t_date` date DEFAULT NULL, `t_acounting_date` date DEFAULT NULL, `t_side` varchar(30) CHARACTER SET ucs2 COLLATE ucs2_polish_ci DEFAULT NULL, `t_title` varchar(250) COLLATE utf8_polish_ci DEFAULT NULL, `t_sender` varchar(300) COLLATE utf8_polish_ci DEFAULT NULL, `t_account` varchar(28) COLLATE utf8_polish_ci DEFAULT NULL, `t_volume` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, `import_date` date DEFAULT NULL, `account_id` int(26) DEFAULT NULL, `valid` int(1) DEFAULT NULL, `created` date DEFAULT NULL, `modified` date DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=309 ;
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.