Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][inne] Excel -> MySQL problem z kodowaniem
Forum PHP.pl > Forum > Przedszkole
wicy
Zacznę od końca.
Mam bazę danych MySQL i phpmyadmin pozwala mi ręcznie importować dane do bazy z formatu CSV lub SQL. Nie znam się na tyle by próbować tworzyć skrypty ładujące dane do bazy dlatego chcę pozostać przy imporcie ręcznym.
Dane gromadzę i przetwarzam w excelu finalnie importując dane do bazy poprzez CSV.
I wszystko grało gdy:
- strona prezentująca dane była w kodowaniu windows-1250
- import do bazy MySQL odbywał się z opcją kodowania latin2

Pojawiła się konieczność zastosowania na stronie wersji językowych i musiałem stronę kodową zmienić na utf8. Zmieniłem procedurę importu poprzez CSV o tyle, że w gotowym CSV za pomocą notatnika zmieniam kodowanie na utf8 i tak przygotowany CSV importuję do MySQL z ustawionym w phpmyadmin paramertem "kodowanie pliku" na latin2.
Procedura działa dla polskich znaków, jednak oprócz nich w bazie excela pojawiły się łańcuchy tekstowe pisane cyrylicą. O ile sama strona wyświetla się OK, o tyle z przerzuceniem danych do MySQL i ich prezentacją zaczęły się schody:
1) excel eksportuje tabelę do CSV z zastosowaniem kodowania windows-1250 (chyba)
2) cyrylica w CSV jest ciągiem znaków zapytania

Jak poradzić sobie z wypełnieniem bazy MySQL danymi excel->CSL->SQL mając mieszane znaki polskie i rosyjskie?
Może są jakieś narzędzia do konwersji plików XLS na CSV(utf8)?
Maciek1705
kiedyś miałem podobny problem lecz bza danych była inna konkurencyjna. W twoim przypadku jest sprawa prościejsza, jeśli w Exelu masz to co chcesz zaimportować i wyświetla Ci tam wszystko ok, to wejź to zaimportuj do bazy danych, strone kodową plików html czy php zmień na utf-8 a dane które zaimportujesz z exela można im po imporcie zmienić kodowanie z win-1250 (bo tak owe ma excell) na utf-8 jednym poleceniem. A poleceni możesz znaleśc w necie lub jak ktoś będzie łaskawy to je napisze ponieważ ja osobiscie nie używam MySQLa, ale wiedz że tak się da.
wicy
Poradziłem sobie chyba z problemem. Po stronie PC robię:
1) export excel -> unicode txt (cyrylica zostaje zachowana)
2) otwieram notatnikiem i zmieniam kodowanie na utf8
3) otwieram znów excelem poleceniem "otwórz za pomocą" (cyrylica w formie krzaczorów ale to bez znaczenia)
4) robię eksport do CSV (znów poprawnie pokazuje się cyrylica)
Po stronie phpmyadmin robię import CSV z ustawionym parametrem latin2 (nie wiem dlaczego akurat taki, ale tylko taki działa poprawnie)

Jeśli zna ktoś aplikację automatyzującą w/w operacje, chętnie się z nią zapoznam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.