Brak polskich znaków na stronie

0

Witam,
mam problem z polskimi znakami na stronie. Korzystam z szablonu, który używa "DataLife Engine". W plikach jest informacja:
"DataLife Engine UTF Edition przeznaczony jest do aktualizacji witryny zakodowanej w ISO-8859-2."

No i faktycznie, w plikach wszędzie charset jest ustawiony na: iso-8859-2. Plik łączenia się z bazą wygląda tak:

<?PHP
define ("DBHOST", "localhost"); 
define ("DBNAME", "*****");
define ("DBUSER", "*****");
define ("DBPASS", "******");  
define ("PREFIX", "dle"); 
define ("COLLATE", "latin2"); 
define ("USERPREFIX", "dle"); 
$db = new db;
?>

Podczas importowania bazy danych wybrałem UTF-8, natomiast metoda zapisywania znaków jest ustawiona na "latin2_general_ci". Problem jest taki, że po wejściu na moją stronę domyślnie ustawione jest kodowanie UTF-8:
user image
I powoduje to to, że zamiast polskich znaków mam albo krzaczki, albo znaki zapytania. Dopiero zmiana kodowania w przeglądarce na ISO-8859-2 powoduje, że polskie znaki są poprawnie wyświetlane. Co mogę zrobić, by to naprawić? W kodzie strony jest fragment:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />

Mimo wszystko i tak domyślnie strona otwiera się w UTF-8 (sprawdzałem na kilku komputerach). Dodam tylko, że szablon jest dość stary; ja go kupiłem od osoby, która na swojej stronie ma ten sam szablon, lecz jego strona domyślnie otwiera się w iso-8859-2. Moja niestety nie.

0

Najlepiej zmodyfikuj to tak aby działało na utf-8. Wątpię aby było to trudne.

Jeśli jednak koniecznie chcesz tam to kodowanie to wyłącz domyślne wykrywanie kodowania strony w przeglądarce.

Możesz to zrobić modyfikując plik .htaccess dodając: AddDefaultCharset Off albo zmieniając on na off. Jeśli nie masz takiego pliku to go utwórz.

0

Przede wszystkim treści w bazie mają być w UNICODE, musisz ustawić też odpowiednie COLLATE i charset w nagłówku html. Gdy będziesz miał wszystko w UNICODE to będzie git. Pewnie coś Ci ten szablon gramoli z tymi kodowaniami.

0
lightinside napisał(a):

Najlepiej zmodyfikuj to tak aby działało na utf-8. Wątpię aby było to trudne.

Jeśli jednak koniecznie chcesz tam to kodowanie to wyłącz domyślne wykrywanie kodowania strony w przeglądarce.

Możesz to zrobić modyfikując plik .htaccess dodając: AddDefaultCharset Off albo zmieniając on na off. Jeśli nie masz takiego pliku to go utwórz.

Juhas napisał(a):

Przede wszystkim treści w bazie mają być w UNICODE, musisz ustawić też odpowiednie COLLATE i charset w nagłówku html. Gdy będziesz miał wszystko w UNICODE to będzie git. Pewnie coś Ci ten szablon gramoli z tymi kodowaniami.

W pliku .htacces na początku miałem:
AddDefaultCharset iso-8859-2

Zmieniałem na UTF-8 albo na off i nic niestety nie dało :/

0

A w bazie zmieniłeś?

0
Juhas napisał(a):

Przede wszystkim treści w bazie mają być w UNICODE, musisz ustawić też odpowiednie COLLATE i charset w nagłówku html. Gdy będziesz miał wszystko w UNICODE to będzie git. Pewnie coś Ci ten szablon gramoli z tymi kodowaniami.

W bazie metodę porównywania napisów mam ustawioną na: latin2_general_ci

0

No to jak chcesz mieć widoczne w UTF, jak w bazie masz teksty zakodowane w latin2? Wszystkie teksty z bazy muszą zostać skonwertowane do UTF i collate też ma być utf.

0
Juhas napisał(a):

No to jak chcesz mieć widoczne w UTF, jak w bazie masz teksty zakodowane w latin2? Wszystkie teksty z bazy muszą zostać skonwertowane do UTF i collate też ma być utf.

To może inaczej.

Posiadam domenę "A". Domena "A" korzysta z bazy danych "baza1". Chcę przemigrować z domeny "A" na domenę "B". W pierwszej kolejności pobrałem przez program Filezilla wszystkie pliki z ftp domeny "A".

Następnie wszystkie pliki, a dokładniej folder "public_html" spakowałem do .zip i wysłałem na ftp domeny "B". Tam, w panelu rozpakowałem plik .zip.

By być pewnym, że to nie jest wina bazy danych połączyłem domenę "B" z bazą danych "baza1". Oczywiście najpierw zezwoliłem dostęp bazy do hostów %.

No i nadal to samo. Obie domeny posiadają tag:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
W końcu wszystkie pliki (oprócz tego, który łączy się z bazą danych) są takie same.

Problem jest taki, że Domena "A" wyświetla się domyślnie w kodowaniu ISO-8859-2 natomiast Domena "B" w kodowaniu UTF-8. Przez co zamiast polskich znaków mam:
궶 oraz �

Jak widać, nie jest to problem bazy. Jeśli chodzi o plik łączący się z bazą danych to w notepad++ zaznaczyłem, by jego kodowanie było ISO-8859-2.

Zależy mi na tym, by domena "B" domyślnie wyświetlała się w kodowaniu ISO-8859-2 ponieważ wtedy polskie znaki są poprawnie wyświetlane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1