szaq 0 Zgłoś post Napisano Grudzień 20, 2008 Witam. Wiem, że podobne tematy były już wałkowane, ale próbowałem podanych w nich rozwiązań i niestety nic nie udało mi się zrobić. Chcę przenieść dwie bazy danych b_konta b_grupy Serwer, z którego będę przenosił ma następujące parametry: Wersja serwera: 5.0.32-Debian_7etch5-log System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) System porównań dla połączenia MySQL: utf8_unicode_ci Gdy spojrzeć na tabele w bazach, to metoda porównywania napisów jest ustawiona na latin2_general_ci. Serwer docelowy to: Wersja serwera: 5.0.32-Debian_7etch8-log System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) System porównań dla połączenia MySQL: utf8_unicode_ci Do przeniesienia baz używam PhpMyAdmina. Zakładam na docelowym serwerze (dostęp root) bazę z porównywaniem latin2_general_ci. Na źródłowym wybieram eksport, plik ZIP i pobieram plik. Na serwerze docelowym wybieram bazę, wybieram import, wybieram zestaw znaków UTF8, potem wskazuje plik i wgrywam kopię. Po uploadzie w PMA wszystko jest w jak najlepszym porządku, ale na stronie polskie znaczki zamieniają się na znaki zapytania. Idzie jakoś rozwiązać ten problem? Z góry dzięki za pomoc Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Grudzień 20, 2008 Spróbuj przy eksporcie ustawić kompatybilność z MYSQL40 Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Grudzień 21, 2008 Po uploadzie w PMA wszystko jest w jak najlepszym porządku, ale na stronie polskie znaczki zamieniają się na znaki zapytania.Idzie jakoś rozwiązać ten problem? Przypuszczalny problem to brak właściwego kodowania na połączeniu mysql<->php W skrypcie po połączeniu z bazą wykonaj zapytanie: SET NAMES "utf8" Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Grudzień 21, 2008 Spróbuj przy eksporcie ustawić kompatybilność z MYSQL40Takich rzeczy akurat nigdy nie rób. MySQL 4 nie miało opcji porównywania znaków tabel i przy takim eksporcie pomijane są te ustawienia kodowania znaków w tabeli, więc taki eksport jest nic nie warty. Tak jak regdos pisze, za mysql_connect() dodaj SET NAMES, chociaż ja obstawiam latin2 (utf8 zrozumiałem, że to kodowanie domyślne bazy): mysql_query('SET NAMES latin2'); Problem może leżeć też w innym miejscu. Upewnij się też, że przeglądarka dostaje od serwera stronę z poprawnym kodowaniem znaków (taki <META są ignorowane przez przeglądarki, liczy się kodowanie przesłane w nagłówku HTTP). Domyślnie apache2 na Debianie Etch ustawia w nagłówku kodowanie przesyłanych dokumentów html na UTF8, jeżeli masz stronę w latin2 a serwer forsuje UTF to wpisz w jakimś globalnym pliku php (który jest includowany przez wszystkie skrypty): header('Content-Type: text/html; charset=iso-8859-2'); Udostępnij ten post Link to postu Udostępnij na innych stronach
szaq 0 Zgłoś post Napisano Grudzień 21, 2008 Dzięki wielkie. Dodałem zapytanie mysql_query('SET NAMES latin2'); oraz na wszelki wypadek header('Content-Type: text/html; charset=iso-8859-2'); i wszystko działa jak należy. Jeszcze raz dzięki i pozdrawiam. Wesołych Świąt! Udostępnij ten post Link to postu Udostępnij na innych stronach
Jarosław Szmańda 42 Zgłoś post Napisano Grudzień 21, 2008 Dlatego warto nawet wymuszać korzystanie z utf8 - aby później uniknąć takich akcji... Udostępnij ten post Link to postu Udostępnij na innych stronach
fuqet 0 Zgłoś post Napisano Grudzień 22, 2008 Użyj programu EditPlus 3 i przekonwertuj baze do odpowiedniego kodowania. Mi to np. z phpbb Przemo pomogło choć nic innego nie dało rady. Pozdrawiam. Udostępnij ten post Link to postu Udostępnij na innych stronach
BlueMan 69 Zgłoś post Napisano Grudzień 23, 2008 Takich rzeczy akurat nigdy nie rób. MySQL 4 nie miało opcji porównywania znaków tabel i przy takim eksporcie pomijane są te ustawienia kodowania znaków w tabeli, więc taki eksport jest nic nie warty.I właśnie o to chodzi.Nie znam szczegółów, ale chyba phpmyadmin automagicznie rzutuje sobie znaki na utf8 i wtedy eksport do tabel utf8 jest bezproblemowy... . Ja zawsze robię eksport objęty transakcją i z kompatybilnością MYSQL4 i wszystko działa dobrze. Już dawno nie miałem problemów z przenosinami baz dzięki temu. Ostatnio z latin1 i latin2 przenosiłem do utf8 i wszystko za 1 razem zatrybiło. Udostępnij ten post Link to postu Udostępnij na innych stronach