Matjas 2 Zgłoś post Napisano Czerwiec 23, 2008 Mam problem, przenoszę bazę MySQL z kodowaniem latin2_general_ci. System porównań dla połączenia MySQL to utf8_unicode_ci. Za każdym razem gdy importuję bazę zamiast polskich znaków pojawiają się krzaki. Na nowym serwerze system porównań jest ten sam. Przy importowaniu zaznaczam kodowanie latin2. Męczę się z tym już jakiś czas i nie wiem czemu tak się dzieje. Co powinienem zrobić aby polskie znaki pojawiały się prawidłowo? Udostępnij ten post Link to postu Udostępnij na innych stronach
michalt 0 Zgłoś post Napisano Czerwiec 23, 2008 Spróbuj przy połączeniu z bazą danych dodać coś takiego: mysql_query("SET names latin2"); Na ogół pomagało zawsze. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Czerwiec 23, 2008 sprawdź plik bazy gżegżółką (gzegzolka.com), a potem kombinuj heh Udostępnij ten post Link to postu Udostępnij na innych stronach
adi 0 Zgłoś post Napisano Czerwiec 23, 2008 Po zrobieniu zrzutu zobacz jakie masz kodowanie albo bedzie UTF8 (2 kszakory zamiast jednego polskiego albo latin2 (też latwo rozpoznać) następnie dodaj do zrzutu po use baza_danych set names utf8; i dalej importuj normalnie czyli mysql -uuser -p baza <plik.sql Raczej do tych 2 systemów kodowania znaków (tudzież jeszce w gre wchodzi win1250, wystarczy reczne sprawdzenie). Zamiast dopisywania set names mozesz sobie poszukac jakis przelaczniy w stylu --set-charset czy cos podobnego w wywolaniu mysql -uuser.... Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Czerwiec 23, 2008 Dalej średnio rozumiem zrzut mam na dysku, dostałem od znajomego bo dla niego to robię. Wrzucam normalnie przez phpmyadmina. Jak wrzucałem na jeden ze swoich serwerów wszystko działało dobrze, ale u niego zawsze krzaczy. Udostępnij ten post Link to postu Udostępnij na innych stronach
Prohost 345 Zgłoś post Napisano Czerwiec 24, 2008 Najpierw sprawdź jakie kodowanie masz w pliku .sql Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Czerwiec 24, 2008 Pisałem przecież, że latin2 Udostępnij ten post Link to postu Udostępnij na innych stronach
Prohost 345 Zgłoś post Napisano Czerwiec 24, 2008 Znając dokładnie kodowanie pliku możesz użyć iconv do konwertowania na docelowe kodowanie - potem replace collation jeśli trzeba. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Czerwiec 24, 2008 ale sprawdź dokładnie, gżegżółką - ileż to ja razy miałem w phpmyadminie latin2, w pliku niby set names latin 2, a potem wychodziły jakieś dziwne historie : ) Udostępnij ten post Link to postu Udostępnij na innych stronach
adi 0 Zgłoś post Napisano Czerwiec 24, 2008 Pisałem przecież, że latin2 Nie wazne jak masz zdefiniowane kodowanie ;] chodzi o kodowanie danych czyli napisów tekstow ktore rownie dobrze (i czesto tak jest )jest w UTF8 mimo ze masz baze w latin2 bo zrzut se akurat w utf8 zrobil albo jest w latin2 ale tak czy inaczej set names latin2 trzeba dopisac. Po prostu odpal w edytorze jakims i poszukaj napisów (z polskimi literami) I nic nie tzreba konwertowac set names po prostu mowi jakie ma w danej chwili kodowanie uzyc i jak bedzie zgodne z rzeczywistym kodowaniem pliku to bedzie ok. Pozniej bedzie dzialac jako latin2. Jedynym wyjatkiem jets to jesli zrzut jest uwalony w latin1 izamiast polskich znakow sa ? wtedy nic nie poradzisz po za recznym poprawianiem . Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Czerwiec 24, 2008 Dobra, nie wiedziałem, że aż tak się na tym nie znam Sprawdziłem gżegżółką i wyszło Kodowanie: Unicode UTF-8. Trochę to dziwne bo pod każdą tabelą pisze DEFAULT CHARSET=latin2;. No ale ok, co mam teraz z tym zrobić? Tak dla kompletnego laika Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Czerwiec 24, 2008 zdecyduj się na jedno kodowanie i upewnij, że wszędzie takie jest... może ten latin2 jednak gżegżółką skonwertuj plik bazy do latin2/iso-8859-2 a potem wrzuć to do bazy właśnie jako takie - jeśli skrypty nie mają jakiegoś chorego kodowania gdzieś poustawianego, to powinno być bombowo Udostępnij ten post Link to postu Udostępnij na innych stronach
Prohost 345 Zgłoś post Napisano Czerwiec 24, 2008 Dobra, nie wiedziałem, że aż tak się na tym nie znam Sprawdziłem gżegżółką i wyszło Kodowanie: Unicode UTF-8. Trochę to dziwne bo pod każdą tabelą pisze DEFAULT CHARSET=latin2;. No ale ok, co mam teraz z tym zrobić? Tak dla kompletnego laika Jako utf się importuje. Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Czerwiec 24, 2008 Przekonwertowałem gżegżółką na iso-8859-2, teraz jak otworze bazę w notepad++ to ładnie widać polskie znaki, jednak jak wrzucam dalej nie działa. Jak wrzucam bazę i dam zestaw znaków dla pliku na utf8, to wygląda to tak, że niektóre znaki są, niektóre nie np. strona g?ówna, a jak dam latin2 to są same znaki ? zamiast polskich. Udostępnij ten post Link to postu Udostępnij na innych stronach
Prohost 345 Zgłoś post Napisano Czerwiec 24, 2008 Przekonwertowałem gżegżółką na iso-8859-2, teraz jak otworze bazę w notepad++ to ładnie widać polskie znaki, jednak jak wrzucam dalej nie działa. Jak wrzucam bazę i dam zestaw znaków dla pliku na utf8, to wygląda to tak, że niektóre znaki są, niektóre nie np. strona g?ówna, a jak dam latin2 to są same znaki ? zamiast polskich. Jak już wrzucisz jako utf to w skrypcie dodaj po połączeniu komendę do mysql set names latin2 - tak jak ktoś wcześniej pisał. Tu masz więcej info: http://wiki.prohost.pl/index.php?title=Kod...e_Mysql#Skrypty Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Czerwiec 24, 2008 notepad++ w środowisku tak wychwalany, IMO to syf, który kaszani kodowanie.. nic nie kombinuj, po konwersji wrzuć plik przez phpmyadmina, ew. zrób jak Prohost dopisał heh Udostępnij ten post Link to postu Udostępnij na innych stronach
adi 0 Zgłoś post Napisano Czerwiec 24, 2008 Przekonwertowałem gżegżółką na iso-8859-2, teraz jak otworze bazę w notepad++ to ładnie widać Nic nie musisz przekonwertowywac! Po prostu zrzut jest w UTF starczy dodac set names utf8 w pliku SQL i zrobic mysql -uuser -p baza < plik.sql i tyle bedzie wszystko ok. set names ustawia bieżące kodowanie (polaczenia) i skoro masz plik w UTF (bo zrzut w phpmyadminie zwykle jest w UTF chyba ze inaczej ustawisz) to dane zostana wlasciwie wgrane (nie zostana uszkodzone) a baza sobie zinterpretuje przy zapisie do latin2 bo tak jest ustawiona. Oczywiscie jak zmieniles kodowanie to ustaw set names latin2 (rownez w pliku ) lub tez mozesz sobie wejsc do konsoli mysql ustawic set names iposzukac magicznego " / " sluzacego do importu j atam nigdy nie pamietam ktory to ;] Nie trzeba także żadnych iconv etc ;] No i przez phpmyadmina import bardzo dużej bazy jest nierealny lub malo wydajny za to eksport przyjemny. Udostępnij ten post Link to postu Udostępnij na innych stronach
Prohost 345 Zgłoś post Napisano Czerwiec 24, 2008 Tak poedytuj sobie .sql... Edytując łatwo popsuć kodowanie pliku jak się nie wie co się robi i czym. Udostępnij ten post Link to postu Udostępnij na innych stronach
adi 0 Zgłoś post Napisano Czerwiec 24, 2008 Tak poedytuj sobie .sql... Edytując łatwo popsuć kodowanie pliku jak się nie wie co się robi i czym. Ojejku bez przesady SQL binarny nie jest ;] Dodanie na poczatku jednej linii racej az tak trudne nie jest (chyb alatwiejsze niz konwersja pliku, ktora tez moze ni pomoc a edytor dla przecietnego admina tez by sie znalazl np.: mcedit, vi, scite, eclipse Mozna by tez poeksperymentowac z opcjami mysqldump czy tez mysql ale spoko mozna wszytsko wynac na kilkanascie roznych sposobow. Wazne aby sie udalo . Lub tez jak pisalem: mysql -uuser -p baza set names KODOWANIE_pliku \. sciezka_do_pliku.sql Choc w sumie tak nie probowalem ale powinno byc ok z mojej strony EOT bo ile mozna napisac postow o tak prozaicznej czynnosci jak import bazy danych Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Czerwiec 24, 2008 Dobra poradziłem sobie w końcu dzięki za pomoc Udostępnij ten post Link to postu Udostępnij na innych stronach