Zobacz pełną wersję : jom1.0.8pl - polskie znaki na utf8 i latin1 (czemu jest ok?)
piotr.uk
16-03-2006, 23:35
witam
instaluje paczke 1.0.8pl pobrana z joomla.pl. porownywanie napisow w bazie ustawiam na latin2_general. i co widze po instalacji?? krzaki zamiast polskich znakow (np ? zamiast ć).
nowa instalacja, tym razem z porownywaniem ustawionym na utf8_polish. polskie znaki jak ta lala. wszedzie. front i back-end.
robie to samo, tym razem z latin1_general - i tu znowyu zaskoczenie bo znowu nie ma problemow z polskimi znakami.
co jest? czemu na latin2_general sie krzaczy choc nie powinno?
za to na utf8_polish i na latin1_general dziala bez problemu - choc teoretycznie nie powinno?!
jakie kodowanie wybrac, biorac pod uwage ze bede instalowal komponenty dla admina (backend) ktore beda angielskojezyczne (kodowanie inne niz latin2).
jestem zdezorientowany.
jakies pomysly?
Generalnie lepsze jest latin 2, z utf-em mozesz miec problemy gdyz polskie dodatki wychodza w iso i beda sie krzaczyc. Musialbys za kazdym razem konwertowac
Co do wgrania do bazy danych to nie wiem czu tak sie dzieje, aczkolwiek mozesz sprubowac instalowac na latin2_general po dodaniu do pliku sql DEFAULT CHARSET=latin2 do każdej tabeli. I daj znać czy pomogło bo sam jestem ciekaw:)
zwiastun
17-03-2006, 00:01
Ja z kolei nie rozumiem wybierania kodowania w bazie danych
Joomla 1.08 PL jest tak skonfigurowana, że koduje w bazie tak, jak trzeba. Niczego w MySQL-u mieszać nie trzeba
piotr.uk
17-03-2006, 00:12
no niby nie trzeba, ale
1 - tworze pusta baze (cpanel lub phpmyadmin), nadaje usera i prawa
2 - utworzona baza ma domyslne ustawione porownywanie napisow na latin1_swedish (czemu to zagadka, przeciez serwer stoi w angli :-)
3 - no to zmieniam porownywanie (ciagle pustej bazy) na latin2_general
4 - instaluje paczke
5 - no i sa krzaki, zreszta podczas pisania tekstow na backend po zapisaniu i otworzeniu (np artykulu) ponownie, pojawiaja sie krzaki zamiast polskich znakow
jesli robie to samo zostawiajac domyslnie ustawione kodowanie pustej bazy na latin1_swedish, lub zmienie je na latin1_general lub tez utf8_polish - po instalacji wszystko jest ok
===================================
sprostowanie:
ok,ok,ok,
namieszalem (i to przede wszystkim sam sobie).
system kodowania dla calej bazy mySQL jest ustawiony na sztywno i to jest UTF-8 :(
dopiero teraz zobaczylem ze to co zmieniam to nie kodowanie tylko "system porownan dla polaczenia mySQL" (czyli metoda porownywania napisow o ile rozumiem).....
wszystko jasne
baza jest w utf-8 i to na sztywno. a polskie znaki sa tylko przy porownywaniu napisow ustawionych na latin 1 lub utf8.
pozostalo prosic provaidera o zmiane ustawienia dla mysql lub zmienic serwer.... czego zreszta bym nie chcial robic
namieszalem (i to przede wszystkim sam sobie).
system kodowania dla calej bazy mySQL jest ustawiony na sztywno i to jest UTF-8 :(
...//...
wszystko jasne
baza jest w utf-8 i to na sztywno. a polskie znaki sa tylko przy porownywaniu napisow ustawionych na latin 1 lub utf8.
pozostalo prosic provaidera o zmiane ustawienia dla mysql lub zmienic serwer.... czego zreszta bym nie chcial robic
No namieszałeś sobie ... i innym.
Pytanie jest co ma piernik do wiatraka ?
Zostaw bazę w spokoju, niech sobie będzie UTF-8. O metodzie porównywania znaków już nie wspomnę. Jeśli nie dokońca wiesz do czego służy, to lepiej nie psuć ;)
Jednak wszystko to nic nie przeszkadza, aby twoja strona na frontendzie była pod kodowaniem ISO. W końcu jest coś takiego jak sterownik bazy danych za pomocą którego się przecież łączysz.
Jeśli wpisujesz w iso i odbierasz (oglądasz) w iso, to kodowanie w UTF nie ma dla ciebie znaczenia. Inaczej, gdy zapisujesz do bazy w jednym standardzie, a przetwarzasz w drugim - wtedy potrzebna już konwersja.
Specjalnie dla Ciebie zrobiłem szybciutką instalkę, żeby nie było ;)
Sytuacja analogiczna. Strona w ISO, baza w UTF - jak zresztą jest na wszystkich zagranicznych serwerach. Gwarantuję działa bez problemu i pięknie.
Zobacz sam: http://testonly.frico.webd.pl/index.php?option=com_frontpage&Itemid=1
Pozdrawiam
frico
PS. Zapomniałem najważniejszego :)
Ewentualnych przyczyn kłopotów szukaj w... templetce.
piotr.uk
18-03-2006, 04:00
wiem wiem. w utf dziala front/back bez problemow. sterownik zalatwia sprawe.
zglupialem w momencie gdy myslalem ze sie krzaczy w latin2.
gdy zobaczylem ze baza jest ustawiona na sztywno w utf a latin2 to obsluga porownan (a nie kodowanie calosci) moj problem automatycznie przestal istniec
jednak dzieki za post i testowa instalke.
wszystko chodzi bo musi,
tylko na przyszlosc widze "przejsciowe" problemy ze zmiana utf do latin przy ewentualnej zmianie provaidera/servera
ale, swiat bez problemow bylby nudny hehe
pozdrawiam
tylko na przyszlosc widze "przejsciowe" problemy ze zmiana utf do latin przy ewentualnej zmianie provaidera/servera
Żadnych problemów nie będzie. Zrzut bazy wrzucasz do konwertera i masz go w latin1. Raptem jedna czynność więcej, ... czyli jakieś 2 minuty "problemów" ;)
Pozdrawiam
frico
piotr.uk
18-03-2006, 15:56
z konwersja nie mam doswiadczenia. w zasadzie nigdy tyn problem mnie nie dotknal ;)
obawialem sie recznej edycji zrzutu. ale jesli jest tak jak mowisz to gicio.
w tej chwili wszystko chodzi.
pozdrawiam
ASSmodeus
06-06-2006, 15:13
Witam,
Wiem, ze wyjde na ignoranta, ale juz nie moge sobie poradzic, a dyskusja w tym watku nie wiele mi pomogla.
Nie mniej jednak mam bardzo zblizony problem, co zalozyciel watku, wiec pozwolilem sie do niego podpiac.
Mam zainstalowanego Apacha + PHP + MySQL na 3 serwerach.
Dwa moje, jeden nie. (chodzi o mozliwosc dostepu - do tego jednego mam tylko przez WWW).
2 z nich stoja na linuxach, jeden na windowsie.
Wzialem sobie paczke z Joomla1.0.8pl i wrzucilem na wszystkie.
I o dziwo... w Windowsie polskie znaki jak marzenie, a na obu Linuxach rowniez znaki, ale tylko zapytania :-(
Wszedzie te same dane, wszedzie taka sama konfiguracja.
No z malym wyjatkiem:
W konfiguracji witryny na Linuxach kod kraju jest "pl_PL" a na Windzie "Polish_Poland.1250".
Kodowanie w serwerze MySQL, poszczegolnych baz, poszczegolnych tabel i poszczegolnych pol jest wszedzie dokladnie identyczne.
Co wiecej uzyte szablony sa identyczne.
Zeby nie bylo, ze przeoczylem brak jakiegos znacznika meta.
Juz z phpMyAdmina druknalem sobie (na wszelki wypadek) konfiguracje zmiennych serwerow bazodanowych (na przekor opiniom, ze to nie ma znaczenia).
I jesli chodzi o zmienne dotyczace kodowania znakow, wszystko jest identycznie.
Ale to nie wszystko....
Wlazlem na phpMyAdmina na jednym z serwerow linuxowych i wprowadzilem tekst z polskimi znakami bezposrednio w odpowiednim rekordzie w odpowiednie pole.
I phpMyAdmin pokazuje mi ok a na stronie nadal krzaki.
Juz mi sie powoli pomysly koncza....
a nie masz w templaku nadmiarowego > nawiasu w metatagu odpowiedzialnym za kodowanie ?
ASSmodeus
06-06-2006, 16:04
a nie masz w templaku nadmiarowego > nawiasu w metatagu odpowiedzialnym za kodowanie ?
A miałem miałem :D
Ale usunąłem...
Oczywiście tak czy siak nie powinno mieć to znaczenia ze względu na to, ze ten znacznik jest wskazaniem dla przegladarki, a przegladarki uzywam tej samej.
No i jak juz wczesniej napisalem, templatka domyslna rowniez jest ta sama.
Wlasnie walcze z wersja polska UTF-8 i tam tez jest pare ciekawostek, ale czesciowo udalo mi sie uzyskac polskie znaki na linuxie....
Jesli uda mi sie to calkowicie, to dam znac :D
Nie mniej jednak, jakby ktos mial pomysl na rozwiazanie mojego problemu, to nadal z niecierpliwoscia na takowy czekam.
Pozdrawiam
ASSmodeus
07-06-2006, 13:08
W wersji ISO problem jest gdzies podczas komunikacja z baza.
A wysuwam taki wniosek z tad, ze krzaki pojawiaja sie tylko podczas wyswietlania informacji pobieranych z bazy.
Podczas wyswietlania komunikatow zdefiniowanych w pliku language/polish.php, wszystko jest ok.
W wersji UTF-8 jest inna bajka...
Dziwna z reszta...
W znaczniku meta jest wprawdzie ustawiona wartosc utf-8 i informacje w bazie faktycznie sa w tym kodowanie, ale....
Przegladarki mimo tego znacznika meta nie rozpoznaja automatycznie, ze jest to kodowanie utf, tylko iso-8859-2.
Jak mu recznie wymusic utf-8 jest ok.
Firefox w oknie z wlasciwosciami strony podaje, ze kodowanie strony jest ISO-8859-2 mimo, ze znacznik meta jest utf-8.
Dziwactwo.
Witam.
Nie chce sie wychylac z moimi radami, sa tu duzo tezsze glowy. Ale moze to komus pomoze, jezeli jest to nic warte to pls do moda o usuniecie tego postu.
Wczraj zainstalowalem joomla_108_PL_stable-utf8.zip na debianie (sarge), i oczywiscie nie mialem z pl fontami.
Baza mysql jest na uft-8, gdy ustawie przegladarke manualnie na utf-8 jest wszystko ok, ale wystarczy odswierzyc i qpa.
Udalo mi sie to tak:
login jako admin, potem Witryna -> Szata graficzna -> Szaty witryna. (menu gorne).
Zaznacz szate (template) i Edytu HTML.
Wpis:
<?php $iso = split( '=', _ISO );
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
?>
zmien na to lub wstaw przed tagiem <html>
<?php;
echo '<?xml version="1.0" encoding="UTF-8"?>';
header('Content-Type: text/html; charset=utf-8');
?>
U mnie pomoglo, teraz FireFoxie przy podgladzie "Page Info" w encoding mam uft-8 a nie jak poprzednio ISO-8859-1.
Moze nie trafilem z odpowiedzia na twoj problem, moze bylo to juz poruszane.
pzdw.
Wojt.
ASSmodeus
08-06-2006, 17:06
THX
Z wersją utf faktycznie pomogło.
Jeszcze tylko powalcze z ISO ;-)
Pozdrawiam
P.S. Jak widac czasem najprostrze rozwiazania sa najlepsze ;-)
P.P.S. Bardziej uniwersalnym rozwiązaniem jest wpisanie tego headera w plikach index.php w glownym folderze i administrator
OOO i to mi również pomogło w wersji 1.0.13 joomli ;) Dzięki panowie - dłuuugo szukałem
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!