Skocz do zawartości
Zaloguj się, aby obserwować  
Shk

Przenoszenie bazy na inny serwer - kodowanie i krzaczki

Polecane posty

Witam serdecznie,

zrobiłem sobie kopię bazy danych w phpmyadmin za pomocą polecenia Export

z ustawieniami szybko i formatem SQL co zapisało mi na dysku plik.

Na nowym hostingu z wykorzystaniem opcji Import wybrałem z dysku wcześniejszy plik

i na domyślnych ustawniach wrzuciłem bazę. Wszystko gra, jednak występuje problem

z polskimi znakami - są krzaczki.

Cała strona jak i baza od początku są na utf-8.

Jak to poprawić?
Z góry dziękuję.

Pozdrawiam

Edytowano przez Shk (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

Przy UTF8 nie powinno być problemów, zobacz jak wyglądają dane w tym zrzucie oraz jakie są ustawienia kodowania nowego serwera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przy otwarciu bazy np. programem notepad++ kodowanie ustawione jest na UTF8 (bez BOM)

a tekst pokazuje się w formacie "kupiÄ™".

Raczej wszystko wygląda identycznie w ustawieniach jednego i drugiego serwera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Źle się za to zabierasz, zrób tak:

 

CTRL+A -> CTRL+C (musi być tekst z polskimi znakami bez krzaczków) -> Zmień na UTF-8 bez BOM -> CTRL+V ->CTRL+S

 

 

Edytowano przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@lanceq

Tyle, że nie mam dostępu do tych polskich znaków o których piszesz.

Po zalogowaniu się na starym serwerze do phpmyadmin wszędzie mam tekst w formacie "ogÅ‚oszenie".

 

Edit : Nowe wpisy do bazy wchodzą poprawnie z polskimi znakami.

Problem występuje tylko w starych danych, które próbuję przenieśc.

Edytowano przez Shk (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Na moje to już na etapie zrzucania bazy do dumpa ze starego serwisu kodowanie znaczków jest nie takie jakie uważasz. Skoro notepad++ ustawiony na utf-8 widzi krzaki to znaczy, że to co czyta nie jest poprawnym utf'em. Może tutaj sprawdź najpierw. Generalnie jest tu całkiem sporo punktów do sprawdzenia, albo jeszcze więcej ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W tej sprawie niestety jestem zielony, powiedzcie mi proszę jaką informację potrzebujecie i gdzie ją znajdę.

Bardzo zależy mi na Waszej pomocy, muszę przenieść tą bazę na nowy serwer nienaruszoną... :/

 

Po otwarciu odpowiedniej tabeli wyświetlają mi się w phpmyadmin dane (może to Was jakoś nakieruje) :

np. ciężki (ciężki), ogÅ‚oszenie (ogłoszenie).

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość l3szcz

Trochę toporna metoda, ale ja zazwyczaj brałem znaki Ä w ctrl + h i zamieniałem na polskie opcją zamień wszystkie. Potem wgrywałem gotowy dump do bazy :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pytanie czy aplikacja (strona), która korzysta z tej starej bazy wyświetla na stronie prawidłowo tą zawartość ?

 

Bo mi to wygląda na błędnie zapisane dane do starej bazy i jak już wspomniał I3szcz, może to wymagać konwersji jej zawartości (czyli zamiany krzaków na prawidłowe znaki diakrytyczne) aby dump w utf8 prawidłowo dał się wyeksportować. Powinien na to rzucić okiem ktoś kto kojarzy temat aby więcej powiedzieć.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, strona na starym serwerze funkcjonuje bez zarzutów.

Ręczna edycja może być uciążliwa, ponieważ teraz zauważyłem, że np. ł występuje jako Ĺ‚ i Å‚.

Edytowano przez Shk (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Opcje:

 

a) źle robisz dumpa

 

- sprawdź czy przełączniki w eksporcie phpmyadmin do dumpa .sql pozwolą ci wykonać zrzut z prawidłowymi znakami (widziane prawidłowo w notepad)

 

b) dane w bazie są błędnie zapisane (trzeba poprawić krzaki, aby je dalej gdzieś wrzucić bo nie wykonasz prawidłowego dumpa)

 

- sprawdź czy ten programik http://www.gzegzolka.com/?m=down pozwoli ci poprawić błędny dump aby pojawiły się w pliku SQL prawidłowe pl znaki, powinien wykonać to automagicznie w całym pliku

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli wychodzi na to, że dane są już źle zapisane w bazie danych...

(to swoją drogą - dlaczego są wyświetlane prawidłowo!?)

W exporcie raczej nie ma trudności, zaznaczam kodowanie utf8 i pobieram plik .sql.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli twierdzisz, że poprawnie masz przeniesione dane, i masz normalnie znaki specjalne itd. w bazie, to sprawdź czy przy nawiązywaniu połączenia do bazy na pewno masz wymuszone kodowanie UTF8.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy może ktoś za czteropaka na miły wieczór nie chciałby mi pomóc i zerknąć do tej bazy? ;)
Albo kompletnie tego nie rozumiem, albo jest tutaj coś namieszane.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jesteś pewien, że character-set bazy danych (i poszczególnych tabel/kolumn) jest rzeczywiście utf8_***_ci, a nie np. latin1_swedish_ci?

Bo mi to wygląda, że plik eksportujesz właśnie w UTF8, ale dane w bazie to latin1 i dlatego się kopsa.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

A to nie jest przypadkiem phpbb?

 

Takie skrypty sa specyficzne i sa instrukcje jak zrobic zrzut bazy i wgrac na nowy serwer.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jesteś pewien, że character-set bazy danych (i poszczególnych tabel/kolumn) jest rzeczywiście utf8_***_ci, a nie np. latin1_swedish_ci?

Bo mi to wygląda, że plik eksportujesz właśnie w UTF8, ale dane w bazie to latin1 i dlatego się kopsa.

 

Tak, coś było pomieszane właśnie z tym latin1 a utf8.

Pomogła linijka w kodzie skryptu, którą podrzucił mi jeden z użytkowników forum. :)

mysql_query("set names latin1");

A to nie jest przypadkiem phpbb?

 

Takie skrypty sa specyficzne i sa instrukcje jak zrobic zrzut bazy i wgrac na nowy serwer.

 

Nie. Prosty skrypt ogłoszeń z Allegro.pl.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

A w bazie masz normalne znaki w PMA jak patrzysz? Czy też krzaki?

 

Bo np. w phpBB przemo widziałem że w bazie są krzaki, przy złym przeniesieniu są krzaki a przy dobrym nie ma pomimo że w bazie jest "zupa chińskich literek" :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A w bazie masz normalne znaki w PMA jak patrzysz? Czy też krzaki?

 

Bo np. w phpBB przemo widziałem że w bazie są krzaki, przy złym przeniesieniu są krzaki a przy dobrym nie ma pomimo że w bazie jest "zupa chińskich literek" :)

 

W phpmyadmin mam np. ciężki (ciężki), ogÅ‚oszenie (ogłoszenie).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Poczytaj na phpBB forach jak przenosić taką bazę forum. Może przykładowo u Ciebie to pomoże. Liczy się zgrywanie jak i wgrywanie tam jakieś opcje trzeba przestawić :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak. Dane są źle zapisane w starej bazie. Żonglowanie opcjami eksportu niestety w tym przypadku nijak nie pomoże.

Trzeba to po prostu w specyficzny sposób naprawić.

 

Czy mógł byś zrobić następujące screeny na starym serwerze:

1) phpMyAdmin - widok listy tabel w prawym okienku

2) phpMyAdmin - widok struktury tabeli (lista kolumn z typami)i

załączyć je gdzieś w tym wątku?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×