Import bazy z excela do mysql ucina polskie znaki

0

Witam mam taki problem.
Mam dane w excelu i chce je importować do stworzonej bazy w mysql.
w tym celu zapisuje sobie bazę z excela do pliku csv.
poprzez opcje import w phpmyadmin ładuje ten plik csv do bazy.

Jednak problem polega na tym że ucina mi każde słowo które ma jakikolwiek polski specjalny znak typu ńćą itd.

kodowanie mam ustawione na utf8 Unicode ci

Co dziwnego jeśli wyedytuje rekord ręcznie bezpośrednio w bazie mysql i dodam polskie znaki następnie wyeksportuje to jako csv i ten sam plik importuje ponownie to wszystko jest ok.....

Jakieś pomysły bo mi już ręce opadają

Może to zrobić innym sposobem ale jakim?

0

Przy zapisie danych do csv musisz ustawić kodowanie znaków na UTF-8.
MS Excel zapisuje jako cp1250. Do eksportu możesz użyć Calc'a z pakietu Libre/Open Office - możesz sobie wybrać stronę kodową przy zapisie. Ewentualnie plik csv z Excela możesz przekonwertować na UTF-8, np. Notepad++

0

Dzięki za pomoc. Faktycznie excel nie zapisuje z kodowaniem UTF8. Wystarczyło uruchomić plik CSV w notatniku i zmienić kodowanie i jest dobrze........pół dnia walki a jak zwykle rozwiązanie banalne

0

Trochę późno, ale może przyda się też innym poszukującym.

Kodowanie bazy danych to zupełnie co innego niż kodowanie importowanego pliku.

Do bazy danych utf8 można zaimportować dowolnie kodowany plik nawet cp1250 (czyli windows-1250).
Jeśli przez Import w phpMyAdmin, to ustawiasz "Kodowanie znaków pliku" na windows-1250.
Jeśli przez skrypt mySQL:

LOAD DATA LOCAL INFILE 'c:\\tabela.csv' INTO TABLE nazwaTabeli
CHARACTER SET cp1250
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES;

CHARACTER SET cp1250 - kodowanie importowanego pliku do tabeli, która może być kodowana np w utf8
IGNORE 1 LINES - jeśli jest nagłówek to jest pomijany

Wcześniej musi istnieć struktura tabeli pasująca do importowanych danych. Też można ja utworzyć skryptem mySQL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1