Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: krzaki w bazie
Forum PHP.pl > Forum > Bazy danych > MySQL
marekk
WItam,

mam pewien problem z odpowiednim ustawieniem bazy na stronie aby było poprawnie. DOdam z góry, że w przeszłości robiłem już to kilka razy i mniej wiecej wiem jak postępowac ale coś tutaj nie daje rady, zastanawiam sie czy plik sql wygenerowany jest poprawny ogolnie (nie pomieszany kodowaniem), niemniej w bazie na localhoscie wygladaly wpisy poprawnie zarówno w bazie jak i na stronie, moze wkleje kawałek:

zrzut pliku sql

Na localu mialem nastepujace ustaiwenia:

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQ: utf8_unicode_ci
Połaczenia konkretnie dla tabel w bazie: latin1_swedish_ci
Kodowanie na stronie: ISO-8859-2

Zgrałem strone na serwer home.pl zastosowałem dokladnie te same ustawienia i sie wykrzacza, juz w bazie wpisy sa z krzakami. Probowalem zmieniac kodowanie strony na UTF, porownania na utf ale tez jest zle, ustawieina SET NAMES czy SET CHARSET tez jakby nic nie daja. Generalnie dochodze do momentu gdzie dodając od nowa wpisy w bazie przez panel www jest ok. ale nie chce za cholere odtworzyc mi poprawnie tych tabel sadsmiley02.gif

Zaczłąem sięzastanawiać czy coś jets nie tak z samym plikiem SQL wygenerowanym ale baza ta działała na localhoscie prawidlowo (na oko tez widac ze to iso). Probowalem go grzegrzolka tez konwertowac ale wszytskie warianty nei pryznosza skutku :]

Może ktoś jest w stanie coś doradzić?
roobik
Cytat
Połaczenia konkretnie dla tabel w bazie: latin1_swedish_ci

W pliku config.php (jeśli go oczywiście masz, bo jak nie to będziemy kombinować winksmiley.jpg )dopisz sobie:
  1. <?php
  2. mysql_query('SET NAMES latin2');
  3. ?>
Indeo
Niekoniecznie musi to wystarczyć. Plik który pokazujesz ma kodowanie latin1, bo takie kodowanie miały tabele w bazie pierwotnej. Dlatego musisz podczas importu danych do nowej bazy (nie ważne czy będzie latin2 czy utf8_polish) wskazać w phpmyadminie na właściwe kodowanie importowanego pliku (latin1) lub podczas importu np z konsoli mysql ustawić "set names latin1" dla połączenia importującego dane. Następnie w skrypcie logującym się do serwera mysql wykonujesz polecenie "set names latin2". Baza podczas importowania i wysyłania wyników zapytań musi wiedzieć w jakim kodowaniu są do niej wysyłane dane i w jakim ma je zwracać.
marekk
Widze Indeo, ze rozumiesz w czym mam problem, dziek iza podpowiedz ale kurcze nadal mi to nie poszło, a zrobiłem teraz tak:

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQ: utf8_unicode_ci
Połaczenia konkretnie dla tabel w bazie: utf8_unicode_ci
Kodowanie na stronie: UTF-8
- dołaczyłem plik sql jakos latin1
- po połaczeniu z baza ustawiałem set names utf-8 (choc i set names latin2 dla formalnosci)

Zrobiłem tez to samo pod ISO:

System kodowania znaków dla MySQL: ISO 8859-2 Central European (latin2)
System porównań dla połączenia MySQ: latin2_general_ci
Połaczenia konkretnie dla tabel w bazie: latin2_general_ci
Kodowanie na stronie: ISO-8859-2
- dołaczyłem plik sql jakos latin1
- po połaczeniu z baza ustawiałem set names latin2

nie poszlo zadnym z rozwiązań sadsmiley02.gif sadsmiley02.gif

Nie mam pojęcia co jeszcze można zrobić, przecieżten plik to ewidentnie latin1.
Indeo
Podrzuć gdzieś plik z jedną tabelą i danymi (ale żeby były w niej ogonki, bo inaczej nie będzie czego sprawdzać)
marekk
Wysłałem na privka smile.gif
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.