|
Przyjrzałem się temu zagadnieniu bliżej, ponieważ sam natrafilem na mały "problem", podczas przeoczenia bowiem jak się później okazało, spowodowane to było moim niedopatrzeniem (odradzam pracę po nocach do rana) :) Dla wszystkich stęsknionych rozwiązania zagadnienia ę,ą,ś,ź, Ś itp. na serwerach nazwa.pl podaję niżej co i jak podczas przenoszenia należy wykonać. Naprawdę nic się nikomu nie stanie, jeśli zadba o podstawowe zasady "higieny pracy" z bazami, jeśli można się tak wyrazić. Otóż, jeśli posiadamy bazę danych, w której jest kodowanie np. latin2, to w przypadku wpisywania znaków w innym kodowaniu będzie ok, ale problem się pojawi jeśli się zechce przenieść bazę na inny serwer. Wtedy się zaczną płacze i lamenty w zasadzie całkowicie nieuzasadnione, gdy się zachowa takie samo kodowanie podczas (uwaga!) zapisu do pliku dumpa. Dla unaocznienia porobiłem zrzuty ekranu phpmyadmina ode mnie z serwera, oraz w nazwa.pl gdzie też wgrałem bazę:
tutaj jak widać są takie ustawienia, zanim dokonuję jeszcze zrzutu bazy danych:  no i tutaj również takie same, zanim dokona się uploadu (wgrania) dumpa bazy ze starego serwera (wyżej)  a tutaj się odfajkowuje structure i data, czyli struktura tabel oraz dane (uwaga! wlasnie struktura i jej kodowanie gra istotną role)  no a tutaj jeszcze dokonałem zrzutu ekranu aby pokazać jak wyglada baza zaimportowana i porownywanie znakow, ktore jest ustawione na utf-8 (tak jak powinno, poniewaz wyzej też tak mielismy)  Podsumowując: Należy sprawdzić w jakim kodowaniu jest stara baza danych i w takim samym kodowaniu wykonac zrzut i w takim samym kodowaniu wgrać_baze_danych_ze_starego_serwera.sql Dla powyższego przykładu podam jak wygląda błędnie wyglądajacy zrzut struktury tabel dla tabeli losowo wybranej nr. 1 w paczce mambo.sql: Code: CREATE TABLE `mos_akobook` ( `gbid` int(10) NOT NULL auto_increment, `gbip` varchar(15) NOT NULL default '', `gbname` varchar(20) NOT NULL default '', `gbmail` varchar(60) default NULL, `gbloca` varchar(50) default NULL, `gbpage` varchar(150) default NULL, `gbvote` int(10) default NULL, `gbtext` text NOT NULL, `gbdate` varchar(20) default NULL, `gbcomment` text, `gbedit` enum('y','n') NOT NULL default 'n', `gbeditdate` datetime default NULL, `published` tinyint(1) NOT NULL default '0', `gbicq` varchar(20) default NULL, `gbaim` varchar(20) default NULL, `gbmsn` varchar(20) default NULL, PRIMARY KEY (`gbid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; a tak to powinno wyglądać - na dole ma być charser=utf8, zatem będzie to wyglądać tak: Code: CREATE TABLE IF NOT EXISTS `mos_akobook` ( `gbid` int(10) NOT NULL auto_increment, `gbip` varchar(15) NOT NULL default '', `gbname` varchar(20) NOT NULL default '', `gbmail` varchar(60) default NULL, `gbloca` varchar(50) default NULL, `gbpage` varchar(150) default NULL, `gbvote` int(10) default NULL, `gbtext` text NOT NULL, `gbdate` varchar(20) default NULL, `gbcomment` text, `gbedit` enum('y','n') NOT NULL default 'n', `gbeditdate` datetime default NULL, `published` tinyint(1) NOT NULL default '0', `gbicq` varchar(20) default NULL, `gbaim` varchar(20) default NULL, `gbmsn` varchar(20) default NULL, PRIMARY KEY (`gbid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
W każdym razie powodzenia wszystkim życzę, na pewno jak zachowacie odrobinę ostrożnosci nie trzeba będzie ani ręcznie zmieniać znaków zapytania na polskie znaki ą, ś, ć, ę, ł itp., itd., ani pózniej skrobać się w głowę dlaczego kiedy zapisuję coś w edytorze na stronie po polsku ę, ą, ś, ł, to wyskakują znaki zapytania. Mam nadzieję, że to komuś pomoże, pozdrawiam i powodzenia Autor tekstu: vj_ http://vj.e.pl
|