Wyniki 1 do 7 z 7

Temat: Przenoszenie bazy MYSQL - problem z kodowaniem znaków

  1. #1
    Nowicjusz
    Dołączył
    21-06-2008
    Wpisy
    24
    Punkty
    20

    Domyślny Przenoszenie bazy MYSQL - problem z kodowaniem znaków

    Tworzyłem stronę w Joomli korzystając z movAMPa i wszystko działało pięknie. Stronę ukończyłem, więc przerzuciłem pliki na serwer. Pół sukcesu.
    Teraz tak:
    1. Przechodzę do panelu PHPmyadmin w movAMPie screen
    2. Przechodzę do baz danych i wybieram bazę z moją stronką screen
    3. Po otwarci bazy danych wybieram z menu "Eksport"... screen
    4. ... i eksportuję do pliku z ustawieniami jak na załączonym obrazku screen

    OK. Mam już plik "moja_baza.sql" więc biorę się za importowanie zawartości na serwer
    1. Przechodzę do panelu PHPmyadmin na serwerze docelowym screen
    2. Przechodzę do baz danych i wybieram bazę do której będę importować dane screen
    3. Po otwarci bazy danych wybieram z menu "Import"... screen
    4. i importuję bazę z wcześniej utworzonego pliku podając do niego ścieżkę i wciskając "Wykonaj" screen

    Efekt końcowy? Krzaczki zamiast polskich znaków

    Pomyślałem sobie - Gżegżółka XP pomoże. Odpaliłem więc Gżegżółkę XP, wrzuciłem do niej plik "moja_baza.sql" i dałem "Rozpoznanie"

    Efekt? - Kodowanie: nieznane, EOL: LF (Unix)

    Otworzyłem więc w/w plik w Notepad++ i zauważyłem, że kodowanie jest ustaiowne na UTF8 (bez BOM). Wybrałem więc z menu "Konwertuj na UTF8" i zapisałem plik.
    Wczytałem ponownie plik w Gżegżółce i w rozpoznaniu wyszło:
    Kodowanie: Unicode UTF8, EOL: LF (Unix)

    Więc teoretycznie powinno być OK.
    Przechodzę więc tak jak wyżej ->phpMyAdmin -> Baza danych -> Import. Wybieram przekonwertowny plik i daję "Wykonaj".
    W efekcie otrzymuję taki komunikat screen

    Przechodzę więc do głównej strony phpMyAdmin i na liście "System porównywań dla połączeń MYSQL" zmieniam utf8_general_ci na utf8_unicode_ci i wracam do importowania danych. W efekcie otrzymuję identyczny komunikat.

    Nie wiem czego jeszcze mogę spróbować. Proszę o pomoc.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    26 779
    Punkty
    1093

    Domyślny

    Czemu teoretycznie powinno być OK?
    Teoretycznie i praktycznie: baza jest kodowana w utf-8.
    Importuj ja do już założonej bazy, kodowanej w utf-8, wskazując w phpMyAdminie, że plik źródłowy jest kodowany w utf-8. To wszystko, co trzeba

  4. #3
    Nowicjusz
    Dołączył
    21-06-2008
    Wpisy
    24
    Punkty
    20

    Domyślny

    Teoretycznie, bo praktycznie jak widać to nie działa. ;/

    Jak widać na załączonych obrazkach na bazie danych, do której importuję tabele widnieje utf8_general_ci. Choć jest coś czego nie rozumiem. Wcześniej w tej bazie znajdowały się kolumny ze starej strony, która działała pod PHP-Fusion kodowanym na ISO8859-2. Czyli coś tu nie gra. Baza była kodowana w utf8_general_ci a zawartość strony i bazy w iso859-2 i wszystko śmigało. Ale jakim prawem, to nie wiem ;|

  5. #4
    Wyga Jola awatar
    Dołączył
    08-01-2008
    Skąd
    Wrocław
    Wpisy
    3 170
    Punkty
    378

    Domyślny

    Witam,
    Baza była kodowana w utf8_general_ci a zawartość strony i bazy w iso859-2 i wszystko śmigało. Ale jakim prawem, to nie wiem ;|
    Prawo jest takie, że nadrzędną dyrektywą kodowania znaków jest metoda porównywania napisów ustawiona dla konkretnej kolumny. Jeśli kolumna ma ustawioną metodę porównywania napisów na latin2, to wszystko inne może być ustawione inaczej a i tak właściwie będzie współpracować ze stroną w kodowaniu iso8859-2.
    Błąd, o którym piszesz wynika chyba ( na 99%) z nie do końca prawidłowego konwertowania pliku na utf8.
    Prawidłowe przekonwertowanie daje taki efekt, że po utwarciu pliku w kodowaniu utf8 nie wyświetlają się krzaczki.
    Ale pliku nie widziałam, więc mogę się mylić.
    Pozdrawiam

  6. #5
    Nowicjusz
    Dołączył
    21-06-2008
    Wpisy
    24
    Punkty
    20

    Domyślny

    Problem rozwiązany. Weksportowany plik musiałem odpalić w Notepad++, przekonwertować go do UTF8, odpalić w gżegżółce i w niej przekonwertować do iso8859-2 a potem znów do utf8. Tak przerobiony plik otworzyłem ponownie w Notepadzie++, usunąłem komentarze i na zasadzie kopiuj - wklej przerzuciłem zawartość do SQL'a.
    Strasznie to pokręcone, ale jakoś się udało. Jeszcze raz wielkie dzięki dla Joli za pomoc i cierpliwość, która bardzo mi pomogła w rozwiązaniu tego problemu.

  7. #6
    Debiutant
    Dołączył
    22-11-2015
    Wpisy
    4
    Punkty
    2

    Domyślny

    Cytat Wysłane przez kamil_w Zobacz wiadomość
    Problem rozwiązany. Weksportowany plik musiałem odpalić w Notepad++, przekonwertować go do UTF8, odpalić w gżegżółce i w niej przekonwertować do iso8859-2 a potem znów do utf8. Tak przerobiony plik otworzyłem ponownie w Notepadzie++, usunąłem komentarze i na zasadzie kopiuj - wklej przerzuciłem zawartość do SQL'a.
    Strasznie to pokręcone, ale jakoś się udało. Jeszcze raz wielkie dzięki dla Joli za pomoc i cierpliwość, która bardzo mi pomogła w rozwiązaniu tego problemu.
    Mam podobny problem gdyż chcę przenieść bazę danych z jednego serwera na drugi. Opiszę jak to wygląda.
    Na starym serwerze mam bazę danych, gdzie sortowanie połączenie z serwerem jest: utf8_general_ci, natomiast metoda porównywania napisów to: latin1_swedish_ci.
    Dalej robię import do pliku sql, gdzie podczas importu wybieram kodoanie znaków pliku: utf-8. Plik zapisany na dysk.

    Dalej wchodzę na nowy serwer i nową bazę danych, ustawiam tam połączenie z serwerem na utf8_general_ci i metodę porównywania napisów na latin1_swedish_ci, czyli żeby było tak samo, następnie importuję wcześniej eksportowany plik ze starej bazy i na stronie nie ma polskich znaków tylko krzaczki, gdzie może być problem

  8. #7
    Bywalec
    Dołączył
    21-03-2017
    Wpisy
    137
    Punkty
    41

    Domyślny

    Problem może być w różnych wersjach bazy danych - być może na nowym serwerze Joomla nie rozpoznaje że serwer bazy danych obsługuje UTF.
    Sprawdź to rozwiązanie:
    http://forum.joomla.pl/showthread.ph...i-Joomla/page2

    A.
    Pomogłem? Kliknij: Pomógł - daj punkt. Dzięki!

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •