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: <div dir="ltr">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 ;</div> a tak to powinno wyglądać - na dole ma być charser=utf8, zatem będzie to wyglądać tak: Code: <div dir="ltr">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 ;</div> 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
|