Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: konwersja starej bazy latin1 > latin2
Forum PHP.pl > Forum > Bazy danych > MySQL
lechulysy
Witam,
mam prawie 8 letnią bazę danych. Historycznie kodowanie w mysql'u, bazach i tabelach bylo ustawione na latin1_genral_ci natomiast aplikacja (PHP) pracowała na latin2.
Chciałbym z tym porządek bo zauważyłem, że po wystawieniu aplikacji na zewnętrzny serwer pojawił się problem z polskimi znakami.

Plan mam taki:
postawić tymczasowy serwer z ustawionym kodowaniem utf lub latin2;
przerzucić do niego strukturę bazy i ustawić prawidłowe kodowanie tabel i kolumn
wyeksportować dane i wrzucić do nowej bazy

problem w tym, że w phpMy te "polskie" znaki, które prawidłowo wyświetlają się na stronie WWW są krzakami i jako krzaki się importują

Baza ma ok 60 tabel, w 10 jest 100-700 tys rekordow w reszcie do 100 tys.

Co z tym zrobić?
Xelah
Pewnie problem masz przy ustawieniu kodowania po poziomie połączenia. Bo latin1 i latin2 w postaci binarnej są identyczne. Więc nie musisz niczego konwertować Musisz tylko przekopiować z jednej bazy do drugiej z zachowaniem odpowiedniego kodowania. Poczytaj sobie dokumentację. Czasem się nawet przydaje.
https://dev.mysql.com/doc/refman/5.0/en/cha...connection.html

Jeśli jest tak jak mówiesz, to musisz odczytać dane z kodowaniem połączenia latin1 i zapisac z połączeniem kodowanym latin2.

Edit
Oczywiście musisz konwertować z ISO-8859-1 do ISO-8859-2 ale to już detal, który spokojnie możesz zrobić albo w PHP albo w MySQL-u.
lechulysy
dzięki
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.