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?
$fh = fopen($filename, 'r'); $row = 1;
while (($data = fgetcsv($fh, 1000, ";")) !== FALSE) { $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
$this->Transfer->set(array( '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.
Ten post edytował tomas3man 28.10.2014, 18:12:15