Press "Enter" to skip to content

Poprawa wyświetlania polskich znaków w sklepie PrestaShop 1.7

Admin 5

Użytkownicy sklepów PrestaShop 1.7 mogą natrafić na dość nieznośny problem z kodowaniem polskich znaków. Objawia się on “krzaczkami” (czy raczej pytajnikami..) w tekstach na sklepie – opisach produktów, ich nazwach, nazwach kategorii itd.Tak samo w zapleczu sklepu pojawiają się nieprawidłowości. Wręcz brak jest opcji w menu administracyjnym sklepu. Opisane tutaj błędy mogą sygnalizować błędy w bazie danych, lecz niekoniecznie.

Poniżej poradnik jak można spróbować naprawić te błędy.

Kopia bezpieczeństwa

W myśl hasła “Użytkownicy dzielą się na dwie grupy: ci co robią kopie bezpieczeństwa i ci co jeszcze nie robią kopii bezpieczeństwa…”:

Przed podjęciem zmian wykonaj koniecznie:

1) kopie zapasowe plików (FTP) oraz

2) bazy danych:

Zaawansowane -> Baza danych -> Kopia bazy DB -> Wykonaj kopię

Kodowanie szablonu.

Włącz dowolną podstonę sklepu albo stronę główną i wciśnij: CTRL + U. W źródle strony upewnij się, że w sekcji <HEAD> na początku kodu HTML jest zawarty znacznik określający kodowanie typu:

Ważna jest tutaj wartość atrybutu – musi być ona zdeklarowana jako utf-8

Checklista – sprawdź kodowanie bazy danych.

  1. Na poziomie tworzenia bazy danych w panelu hostingowym powinna mieć ona kodowanie: UTF8. Skontaktuj się dla pewności w tej sprawie z administatorem serwera.
  2. W programie PhpMyAdmin wybierz opcję “Databases” i na liście baz danych upewij się czy baza posiada kodowanie UTF8 np. utf8_polish_ci
  3. Wybierz bazę danych i na liście tabel w kolumnie “Collation” (kodowanie) upewnij się, że tabele też mają kodowanie UFT8 np. utf8_general_ci albo utf8_polish_ci
  4. Otwórz dowolną tabelę językową np. ps_cms_lang lub pr_product_lang i upewnij się, że teksty w niej zawarte mają polskie znaki diakrytyczne (kliknij “edytuj” na dowolnym wierszu – nic nie zmieniając i nic nie zapisując)

OK – jeśli wszystko się zgadza – baza danych ma prawidłowe kodowanie i nie jest to przyczyną błędów.

Opcjonalnie. Sprawdź jak zapisywany jest tekst z polskimi znakami.

Utwórz nową stronę CMS z tekstem z pl. literami

  1. Wejdź w dział strony CMS (jeśli nie widzisz go w menu admina sklepu wejdź pod adres: http://{adres-sklepu}.pl/{admin}/index.php?controller=AdminCmsContent&token={token} (Oczywiście w klamrach podaj dane Twojego sklepu).
  2. Dodaj nową stronę CMS, w jej treści wpisz: “zażółć gęślą jaźń ZAŻÓŁĆ GĘŚLĄ JAŹŃ” (przykładowy tekst sprawdzający wszystkie poliskie litery).
  3. Jeśli na poziomie bazy danych w programie PhpMyAdmin w tabeli ps_cms_lang zamiast poliskich liter pojawia się niezrozumiały tekst typu “zażółć gęślą jaźń ZAŻÓŁĆ GĘŚLĄ” oznacza to błędne kodowanie na poziomie skrytpu i nasz sposób naprawy powinien zadziałać.

Naprawa kodowania na poziomie skryptu (w PHP)

Otwórz plik:

Znajdź funkcję:

Następnie w okolicach linii 121 przed kodem:

Wstaw:

Daj znać w komentarzu czy u Ciebie to zadziałało 🙂

 

 

grafika: Michelle Bodamer, peakpx.com, MichelleBodamer.com

  1. Piotr Piotr

    Zadziałało ale np. tytuły stron w zakładce seo&url czy nazwy atrybutów produktu w panalu admin nadal są źle kodowane.

    • Admin Admin

      może zostały wprowadzone na złym kodowaniu w skrypcie? wtedy wpisy są błędne i w PHPmyadmin też będą źle wyświetlone. Inna przyczyna to że ich pola w bazie danych mają ustawione złe kodowanie znaków. ciężko powiedzieć.

      • Piotr Piotr

        Przepraszam ale nie jestem na tyle zaawansowany. Co to znaczy na złym kodowaniu w skrypcie ?

  2. jane jane

    U mnie zadziałało. Dzięki 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Zobacz także !
Jak w PrestaShop 1.7 usunąć wybór płci przez klienta w…