PDA

Zobacz pełną wersję : jak wymusić iso 8859-2 w przeglądarce?



pakomax
01-03-2006, 13:56
Witam
Jestem po przenosinach portalu na inny serwer i oczywiście mam problemy z polskimi znakami. Zainstalowana jest Joomla 1.3 test.
Po wejściu na stronę automatycznie ustawiane jest kodowanie znaków na "środkowoeuropejski (Windows-1250)". Po zmianie na kodowanie ISO-8859-2 krzaczki się usuwają (pozostaje już tylko ręczna robota - poprawienia kategorii itp.) ale np. " Zapomniałe¶ hasła?" zmienia się na "Zapomniałeś hasła?" czyli na ok.
W pliku /templates/top_eye/index.php
mam kod taki jak poniżej....


?>" />-->
<meta content="text/html; charset=ISO-8859-2" http-equiv="content-type">
<?php mosShowHead(); ?>
<?php echo "<link rel=\"stylesheet\" href=\"" .$thisTemplatePath ."css/template_css.css\" type=\"text/css\"/>" ; ?>


....... czyli o ile dobrze kombinuje to jest właśnie dobra deklaracja kodowania (takiego jakiego chce), ale strona index.php domyślnie i tak ustawia na 1250.
Przyznam się że jestem po lekturze wszystkich wątków odnośnie tego tematu.
Próbowałem z plikiem "krzaki_out" polecanym przez Zwiastuna, dodatkowo ściągnąłem "patch_polish1.x_utf-8" i "patch_polish_1.x_iso-8859-2" i nie dały one rezultatu.
Czy (co?) i ewentualnie jak to można zmienić.
Bardzo proszę o odpowiedzi.
Pozdroawiam wszystkich...

magic
01-03-2006, 18:42
<meta content="text/html; charset=ISO-8859-2" http-equiv="content-type">
To co na czerwono jest do przesunięcia na sam początek tagu - to przyczyna problemu.
Zobacz w index.php skąd to się bierze i zlikwiduj. Będzie OK.
Tak to powinno wyglądać:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />

pakomax
01-03-2006, 19:40
Tak to powinno wyglądać:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" /> Niestety to nie pomogło, Nie ma zmian. To musi być coś innego, ale nie mam pojęcia co... juz mi ręce opadają....
Może ktoś się zainteresuje tym tematem i mi pomoże???

magic
01-03-2006, 19:50
Może ktoś się zainteresuje tym tematem i mi pomoże???
Jak będziesz truł w ten sposób, to nikt się nie zainteresuje ...

Wrzuć jakiegoś linka do tej strony, albo zrzut z ekranu, albo stosowny fragment twojego index.php (obszerny, od początku), albo i wszystko razem - no i opisz dokładniej. "W ciemno" też się trudno "zainteresować".

pakomax
02-03-2006, 10:02
Witam
Stronka udostepniona jest pod adresem http://www.zelechlinek.net:5001/intranet gdyby ktoś jednak nie mógł wejśc (adres udostepniony czasowo) to zawsze moze ja zobaczyć na tym obrazku
http://pakomax.pl/zapytanie/20060302/kodowanie1250.JPG
oraz tym
http://pakomax.pl/zapytanie/20060302/kodowanie8859-2.JPG

Dodatkowo zamieszczam w całości nastepujace pliki:
http://pakomax.pl/zapytanie/20060302/index.php.txt
http://pakomax.pl/zapytanie/20060302/index2.php.txt
http://pakomax.pl/zapytanie/20060302/templates/top_eye/index.php.txt

Zgodnie z sugestią postanowiłem je udostępnić, może komuś przyjdzie coś do głowy.... bo ja zabieram sie do zmiany pliku polish.php aby ustrzec sie krzaczków na jakis czas ;(

magic
02-03-2006, 13:26
Początkowo w index.php templatki miałeś tak:


<meta http-equiv="Content-Type" content="text/html;><?php echo _ISO; ?>" />

Na czerwono zaznaczyłem błąd, bo powinno być tak:


<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

Powyższy błąd powodował nieprawidłowe rozpoznawanie charset przez przeglądarkę.
W panice zacząłeś "mieszać" i kombinować z konfiguracją języka, plikami i bazą danych.
Trudno powiedzieć co i jak pozmieniałeś.
Zacznij od przywrócenia linijki jak wyżej (z poprawką) i skasuj na sztywno wpisaną definicję kodowania (skasuj, nie komentuj). Zobacz co się będzie działo.
Napisz jaką masz wersję PHP i MySQL.

pakomax
02-03-2006, 17:31
Zmieniłem tą liniję tak jak kazałeś, efekt pozostał ten sam. Sprawdzałem w innych templatkach jak tam jest to wpisane i spotkałem sie z tą właśnie wersja którą Ty podałeś, i tą wersją którą miałem wcześniej wpisaną... Ale np po zmianie na standardową templatkę też sie krzaczki robią...

Werja PHP 4.3.8
MySQL 4.0.21

teraz kod w index.pHp templatki w sekcji HEAD wyglada nastepujaco:

<?php
//Top Eye is a simple and stylish template from http://lady-beetle.com. The clean design of this template makes it very lightweight and fast.
//author: Rami Ben Ami
//copyright: GNU/GPL
//authorUrl: http://www.lady-beetle.com
defined( "_VALID_MOS" ) or die( "Direct Access to this location is not allowed." );
// needed to seperate the ISO number from the language file constant _ISO
$iso = split( '=', _ISO );
// xml prolog
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
//Define the absolute path to this template
$thisTemplatePath = $GLOBALS[mosConfig_live_site] ."/templates/" .$GLOBALS[cur_template] ."/";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php if ( $my->id ) { initEditor(); } ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<?php mosShowHead(); ?>
<?php echo "<link rel=\"stylesheet\" href=\"" .$thisTemplatePath ."css/template_css.css\" type=\"text/css\"/>" ; ?>
<?php echo "<link rel=\"shortcut icon\" href=\"$GLOBALS[mosConfig_live_site]/images/favicon.ico\" />" ; ?>
</head>

stone
02-03-2006, 21:41
Aby troszkę uporządkować.
Czyli rozumiem że po przenosinach pojawił się problem z polskimi znakami.
Czy przed przenosinami poklskie znaki były na tej samej skórce?
Jakie jest kodowanie bazy wyjściowej i tej po przenosinach
Czy w chwili obecnej nowo dodany tekst (np ąśćżłóń) wyświetla się prawidłow czy też się krzaczy?

pakomax
03-03-2006, 09:11
Odpowiedzi:
Przenosiny - TAK.
Czy wcześniej były polskie znaki - TAK
Kodowanie bazy?? Było latin2 a jakie jest obecnie to juz sam nie wiem. Przy eksporcie przez phpMyAdmin Tam miałem latin2 a tutaj nic mi takiego nie pokazuje.
Jest
) TYPE=MyISAM AUTO_INCREMENT=3 ; a było
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=2 ; ale nie mogłem w żaden sposób tak zaimportować więc baze stworzyłem samemu a dane dodałem poprzez INSERT.
W chwili obecnej mając kodowanie windows1250 po dodaniu czegokolwiek otrzymuje:

Napisał: pawel ¶roda, 01 marzec 2006 ąśżźćłóąśżźćłóąśżźćłóąśżź ćłó oczywiście po zmianie kodowania na iso8859-2 wykrzacza się ale to nic bo to się da popprawić ręcznie.

Nie jestem szpecem w tej dziedzinie, ale wydaje mi się że tu jednak chodzi nie o kodowanie w bazie, lecz o to żeby wymusić w przeglądarce iso, jeżeli tak będzie to wszystkie krzaki znikną, bo one biorą się nie wyciągnięte z bazy a z plików php takich jak np. polish.php i inne.
Wtedy to zamiast
obecnie"win1250" Brak tre¶ci do wy¶wietlenia będzie
"iso8559-2" Brak treści do wyświetlenia

pakomax
03-03-2006, 11:40
...to jeszcze raz ja...
Dziś poinstalowałem kolejne joomle i oto efekty.
Na innym serwerze wersja joomli 1.3 krzaczy
"W przysz³o¶ci FSB maj± spowolniæ prêdko¶æ p³yt g³ównych"
a w źródle strony mam
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> na innym serwerze to samo, ale joomla 1.7 robi tak samo jak mój intranet czyli
Zapomniałe¶ hasła Nie masz konta? Załóż sobie" kodowanie strony ustawione jest tak jak powyżej czyli ISO8559-2, również podczas instalacji tak pokazał bodajże na 1 formatce ale domyślnie i tak się przestawia na windows 1250. o co tu k???? chodzi. A może to być związane z konfiguracją apache? moze to jest tam ustawione że strony mają mieć kodowanie iso8559-1 lub windows1250 a nie iso8559-2???

magic
03-03-2006, 12:18
Zrób nową instalację Joomla 1.0.7PL z naszej plikowni (z przykładowymi danymi) - na boku, ale na tym samym serwerze. Po zainstalowaniu napisz artykuł zawierający polskie znaki.
Daj znać czy (pod domyślną templatka rhuksolarflareII) są poprawnie wyświetlane polskie znaki w etykietach ekranowych, w przykładowych danych i w nowym artykule.

zwiastun
03-03-2006, 13:28
A może to być związane z konfiguracją apache? moze to jest tam ustawione że strony mają mieć kodowanie iso8559-1 lub windows1250 a nie iso8559-2??? A sprawdziłeś? Może tak, może nie, a może nie ma w ogóle iso-8859-2
Dyrektywa:

AddDefaultCharset ISO-8859-2
Albo:

AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen

pakomax
03-03-2006, 15:23
AddDefaultCharset ISO-8859-2
Ta dyrektywa pomogła. Wszystko wróciło do normy.
BARDZO WAM DZIĘKUJE!!!
Wisze Wam piwo a nawet flaszke ;)
To jest właśnie to o co w tym wszystkim chodzi, żeby chodziło jak należy....
Pozdrawiam
Pawel