Cze¶æ.
Nigdzie nie musicie pisaæ, do ¿adnych
Adminów. Wina waszych problemów z polskimi znakami le¿y po stronie
Joomla 1.0.13 ISO lub
UTF, czyli np.
Joomla! 1.0.13 IE w kapeluszu!. Ale nie tak ca³kiem do koñca. Bo to oznaczenie, ¿e jest to wersja
ISO lub
UTF-8 zosta³o dodane dlatego, ¿e autor pomys³u, mongolski programista
Adrian Mummey za³o¿y³ z góry, ¿e wersjê
ISO bêdziemy instalowaæ na bazie danych z kodowaniem
ISO. A mo¿e nawet i nie zak³ada³, bo w Mongolii wprawdzie obowi±zuje standard kodowania znaków
ISO 639-2, ale jest to Cyrylica. Czyli wersja
ISO na bazê z kodowaniem znaków
ISO, a wersja
UTF na bazê z kodowaniem znaków
UTF-8. Poni¿ej cytat z
Joomla.pl:
Baza danych
Je¶li serwer pozwala na za³o¿enie nowej bazy danych, zostanie ona za³o¿ona przez instalatora. Je¶li dysponujesz tylko jedn± baz± danych, sprawd¼ koniecznie sposób kodowania znaków - musi to byæ utf-8.
Oczywi¶cie prawdopodobnie tekst ten dotyczy wersji
Joomla! IE 1.0.13-utf, chocia¿ w w/w artykule nie jest to jasno okre¶lone. Ale tak w³a¶nie jest, o czym pisa³em wcze¶niej.
Rozwi±zanie problemu ze znakami zapytania znajdziecie w kodzie poni¿ej. W pliku
database.php w katalogu "
includes", od linii
101 znajduje siê taki kod:
Kod 1:Kod: |
$this->_table_prefix = $table_prefix;
@mysql_query("SET NAMES 'latin2'", $this->_resource);
$this->_ticker = 0;
$this->_log = array();
|
Wystarczy go zamieniæ na poni¿szy, i korzystaæ i cieszyæ siê, jak pisze
Zwiastun z
Joomla.pl.
Kod 2:
Kod: |
$this->_table_prefix = $table_prefix;
//@mysql_query("SET NAMES 'latin2'", $this->_resource);
$this->_ticker = 0;
$this->_log = array();
|
Widaæ, ¿e w drugim kodzie za komentowana jest linia, w której niejako na si³ê wymuszane jest kodowanie
latin2 na bazie danych
SQL. Je¶li kto¶ ma bazê
SQL z kodowaniem
latin2, to oczywi¶cie nie stanowi to problemu,. Ale jednak wiêkszo¶æ baz przechowuje dane w kodowaniu znaków
UTF-8 czyli
Unicode, i nie nale¿y po zmianie kodu zmieniaæ domy¶lnych ustawieñ
Systemu Kodowañ oraz
Systemu Porównañ znaków. Czyli je¶li mamy:
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8),
System porównañ dla po³±czenia MySQL: utf8_unicode_ci ( Unikod (wiele jêzyków), bez rozró¿niania wielko¶ci liter )
oraz
Metodê porównywania napisów w tabelach latin1_swedish_ci ( Szwedzki, bez rozró¿niania wielko¶ci liter ) to:
NIC NIE MUSIMY ZMIENIAÆ.
Nawet je¶li bêdzie to kodowanie znaków w jêzyku chiñskim. Ja ju¿ chyba o tym pisa³em gdzie¶, ale mam prawo zapomnieæ gdzie, wiêc przypominam o tym jeszcze raz:
NIE GRZEBCIE NIEPOTRZEBNIE W USTAWIENIACH BAZY DANYCH. ZOSTAWCIE DOMY¦LNE USTAWIENIA.
Zreszt±, s± takie serwery, które uniemo¿liwiaj± ingerencjê w te ustawienia. I na ca³e szczê¶cie`.
Oczywi¶cie, to co ju¿ jest popsute, czyli ze znakami zapytania ( mam na my¶li tre¶ci artyku³ów, tytu³y itp ), nale¿y poprawiæ. Natomiast wszystkie zmiany nazw na nowe, np. zmiany nazw modu³ów bêd± dzia³aæ prawid³owo. Pozdrawiam.
Jokris.
P.s. Drobna uwaga: Je¶li prze³±czymy jêzyk w zapleczu na angielski, to równie¿ nie uzyskamy polskich znaków, bo prze³±cznik jêzyka ustawia kodowanie zaplecza na
ISO-8859-1, czyli standard zachodni, i wpisywanie znaków z polskimi ogonkami zakoñczy siê, po powrocie do kodowania
ISO-8859-2 krzaczkami w postaci znaków u¿ywanych do zakodowania liter do
ISO-8859-2. Mo¿na to omin±æ, przestawiaj±c kodowanie znaków w przegl±darce na
ISO-8859-2, i nie od¶wie¿aæ strony. To jest b³±d wersji
JRE, który nie wystêpuje w wersji
Joomla 1.0.13 Stable z
Joomlapl.com. No, ale tylko dlatego, ¿e tam nie ma prze³±cznika jêzyka, i zaplecze jest tylko w wersji oryginalnej, czyli angielskiej. Baj....