ąśźćżęł + nazwa.pl - czyli kodowanie znaków, mambo cms i uzytkowanie tego cmsa na Nazwa.pl!



Polecane:
Szablony stron



Polecam: drukarnia Wrocław

Przyjrzałem się temu zaganieniu bliżej, ponieważ sam natrafiłem na mały "problem", podczas przeoczenia bowiem jak sie później okazało spowodowane to bylo moim niedopatrzeniem (odradzam prace po nocach do rana:D). Dla wszystkich stęsknionych rozwiązania zagadnienia, ę,ą,ś,ź,Ś,� itp na 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 sie zechce przenieść bazę na inny serwer i 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, które jest ustawione na utf-8 (tak jak powinno, poniewaz wyżej też tak mieliśmy)



Podsumowując:

Należy sprawdzić w jakim kodowaniu jest stara baza danych i w takim samym kodowaniu wykonac dumpa i w takim samym kodowaniu wgrać_baze_danych_ze_starego_serwera.sql
Dla powyższego przykładu podam jak wygląda blednie wygladajacy dump struktury tabel dla tabeli losowo wybranej nr. 1 w paczce mambo.sql:


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:


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 życze, 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 zapisuje coś w edytorze na stronie po polsku ę, ą, ś, ł, wyskakują Ci znaki zapytania :) Sposób na rozwiązanie tego "problemu" jaki przedstawiłem powyżej, jest jednym z najszybszych i najprostszych. Mam nadzieje, ze ten krótki artykuł komuś pomoże, pozdrawiam i powodzenia

Autorem artykułu jest vj_. Jeśli chcesz możesz rozpowszechniać ten kurs dalej i umieszczać go tylko i wyłącznie na swojej stronie internetowej, jedynym warunkiem jest umieszczenie linka zwrotnego do strony z kursem, albo strony głównej serwisu vj.e.pl




Copyright vj zone 2006