Witam,
Przeszukałem przez ostatni tydzień trochę internetu i mam niezłą zagwozdkę.
Generalnie użytkownicy mają mieć możliwość wprowadzania danych do systemu za pomocą pliku .CSV. problem polega na tym, że jak w programie Excel wpisuje polskie znaki to po zapisaniu w formacie CSV, zamknięciu i ponownym otworzeniu w Excel'u lub notatniki, Notepad++ czy czymkolwiek innym, zamiast polskich znaków pojawiają się krzaki. Okazuje się, że plik zapisywany jest w ANSI i traci bezpowrotnie informacje o polskich znakach... Nawet jak w Notepad++ zmienie kodowania na UTF8 to nic nie pomaga. Chcę, żeby plik był zapisany w UTF8, z Polskimi znakami, gdyż bazę PostgreSQL mam i chcę mieć w UTF8.
Myślałem, że to wina mojego komputera, gdyż mam Windows po angielsku, a z kolei u koleżanki, która ma po polsku widać polskie znaki w CSV. U niej normalnie widać, a po przesłaniu tego samego pliku mailem do mnie i otwarciu u mnie na komputerze, od razu są krzaki.
Nie przejmowałbym się problemem, gdyby importowanie pliku do bazy poprzez PHP działało poprawnie i polskie znaki się zapisywały w bazie, tak się jednak nie dzieje... Poniżej kod PHP, który mam (używam nawet funkcji do zmiany kodowania Stringa na UTF8).
$uploaddir = '/home/.../dev/system/admin/temp/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
$filename=$uploadfile;
$handle = fopen($filename, "r");
if ($handle) {
$liczba=0;
while (($line = fgets($handle)) != false) {
$line=utf8_encode($line);
// tutaj wycągam poprzez StringTokenizer dane z linii z CSV
$query="insert into users(email, password, name, adres, poczta, telefon) values('".$email."', '".md5('zaq12WSX')."', '".$name."', '".$adres."', '".$poczta."', '".$telefon."');";
$result=pg_query($db,$query);
}
O co proszę:
- O pomoc z tymi plikami CSV bo chyba nie da mi to spokoju, jak zapisać plik CSV w UTF8, aby był rozdzielony średnikami i aby miał polskie znaki
- Generalnie sposób na Upload pliku CSV na serwer i poprawne przerzucenie stringów z polskimi znakami do bazy
Z góry serdecznie dziękuję za wszelką pomoc!
Pozdr,
drejas