Problem z Polskimi czcionkami po przenosinach osCommerce


(Sadmannn) #1

Witam!

Na wstępie napisze, że użyłem narzędzia "szukaj" do znalezienia podobnego tematu związanego z osCommerce (lub ogólnie rzecz biorąc bazami danych) lecz niestety we wszystkich znalezionych wynikach nie było niczego co mogłoby mi pomóc, tak więc zdecydowałem się założyć ten temat.

Jakiś czas temu przeniosłem mój sklep internetowy postawiony na silniku osCommerce na nowy serwer. Niestety po skończeniu całej procedury okazało się, że nie działa część polskich czcionek. Dokładniej rzecz biorąc wysypuje się wszystko co jest pobierane bezpośrednio z bazy danych (nazwy kategorii, opisy produktów itd.), reszta tekstów, która zawarta jest w plikach php działa prawidłowo. Domyślam się iż winę za to ponosi chyba serwer MYSQL który ma źle ustawione kodowanie. Pytanie jak je przestawić?

Poprzednio sklep stał na takim serwerze:

--Wersja serwera MYSQL: 5.0.66

--Wersja PHP: 5.2.6

--Wersja PhpMyAdmin: 2.9.2

Teraz stoi na:

--Wersja serwera MYSQL: 5.0.88-log

--Wersja PHP: 4.4.9

--Wersja PhpMyAdmin: 2.9.2

Zainstalowałem specjalnie tą samą wersję PhpMyAdmin, ponieważ podejrzewałem, że problem może leżeć w kompatybilności. Niestety myliłem się. Co do samego importu bazy danych, to poprzednio stała ona na systemie kodowania latin2 , tak więc tego samego kodowania użyłem teraz.

Obecne ustawienia w phpmyadmin:

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)

System porównań dla połączenia MySQL: latin2_general_ci

Po wszystkich tych zabiegach nastąpiła dość dziwna sytuacja... Jak przeglądam bazę danych poprzez phpmyadmin'a wszystkie polskie znaki wyświetlane są prawidłowo, jednak na stronie dalej są problemy i zamiast polskich liter wyświetlane są znaki zapytania...

Czy ktoś wie jak można rozwiązać ten problem?


(ra-v) #2

Prawdopodobnie chodzi o coś takiego od razu po mysql_selectdb()

<?php

....

mysql_query("SET NAMES latin2");

...

?>

...ewentualnie....

<?php

....

mysql_query("SET NAMES utf8");

...

?>

To jest ogólna zasada PHP+MySQL, nie wiem jak w osComerce to dokładnie wygląda.


(Sadmannn) #3

Dzięki za podpowiedź... Niestety jestem totalnym laikiem, a sam oscommerce ma ponad 1000 różnego rodzaju plików i niestety nie wiem do którego z nich musiałbym dodać ten kod :confused:


(Sitemaster) #4

w oscu dajesz: tep_db_query("SET NAMES latin2");

mozesz też zmodyfikować plik odpowiedzialny za obsługę bazy catalog/includes/functions/database.php

wystarczy chyba poprawić jak w poniższym fragmencie


(Sadmannn) #5

potężne dzięki Panowie! !!

Wszystko w końcu działa tak jak należy :slight_smile:


(Piotr Kuchciak) #6

Ja mam podobny problem. Baza w phpMyAdmin jest w Metodzie porównywania napisów : latin2_general_ci

Jest tak ze mam doinstalowane spolszczenie do osCommerce 2.3.1 i na stronie sklepu wlasciwie znaki sa poprawnie natomiast chociazby waluta ZŁOTY zle sie wyswietla zamiast Ł mam znaki zapytania ?? Wchodzac w baze widze ze w tabeli currence tak samo sa znaki zapytania. Wczesniej jak sie wczoraj bawilem na innej instalacji oscommerce to w bazie SQL mialem metode porownywania napisow: UTF-8 general ci.

Wtedy znow np waluty popranie byly, ale wiekszosc czionek polskich na stronie pojawila sie po instalacji spolszczenia ze znakami zapytania. Tez jak juz sklep wysyłał do zarejestrowanego uzytkownika maila z tematem AKTUALIZACJA ZAMÓWIENIA to tez krzaki były zamiast Ó a jak grzebałem w plikach jezykowych to było popranie wpisane z polskimi znakami.

Nie wiem juz co robic a nie znam sie az tak na tym. W obu wypadkach jest : Kodowanie znaków serwera: UTF-8 Unicode (utf8)

Prosze o szybka pomoc.


(ra-v) #7

Trzeba przekodować bazę (pola) na utf8_unicode_ci oraz

// połączenie z bazą

(Piotr Kuchciak) #8

A o co chodzi z tym polaczeniem z baza ? Gdzie to wyedytowac ? Teraz chyba zrobilem baze na utf8 unicode ci ale jak oscommmerce wysyla maila z informacja o zamowieniu to w tytule maila jest przyjeto zamowienie i zamiast polskich znakow w tytule maila sa krzaki ale normalnie w sklepie jest polska czcionka. Spolszczenie mam z chomika znalazlem do wersji 2.3.1 bo do nowszej nie znalazlem. I w plikach spolszczenia widzialem ze jest cos wspomniane ze chyba one sa w utf8. Mowie nie znam sie az tak dobrze na tym wiec prosze o pomoc.