Wpis z mikrobloga

#programowanie #mysql #php #hosting #pytanie #pytaniedoeksperta #informatyka

Mam pytanie odnośnie kodowania. Moja cała baza to UTF-8 a dokładnie utf8mb4generalci debile z hostingu ustawili sobie:
Kodowanie znaków serwera: ISO 8859-2 Central European (latin2)

I teraz w prestashop w back office jak i czasami na front office wyskakują krzaki mimo że w bazie jest normalnie z ogonkami.

Czy istnieje jakaś możliwość zmusić za pomocą .htaccess do kodowania UTF-8?

Próbowałem AddDefaultCharset utf-8 w htaccess ale nie działa. Dodam że na innych serwerach wyświetla się poprawnie bo zrobiłem kopię 1/1.
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@airflame: AddDefaultCharset ustawia Ci kodowanie na poziomie pliku wyjściowego, a z tego co piszesz to problem masz w samej komunikacji z bazą. Bo rozumiem że inne rzeczy z ogonkami (takie jak np. stałe elementy menu albo panel admina) wyswietlają się prawidłowo?
Jaka wersja PS?
  • Odpowiedz
@theqkash: Wersja 1.7.8.9. W panelu admina wyświetlają się krzaki czasami w front office. Ale chyba wiem co już jest nie tak.

@sohost @LuckyLuke_2776

Okazuje się że skur... z cyberfolks zmieniły sobie kodowanie serwera kiedyś było UTF-8 a teraz jest latin2 i połowa kodowania wpadła do bazy z latin2 a połowa UTF-8. Przy eksporcie z bazy z dopiskiem --default-character-set=latin2 wszystko zamienia się na ogonki jak powinno być. Tylko niestety
  • Odpowiedz
Przydał by się program który by zamienił latin2 kodowanie w istniejącej już bazie na utf-8 nie psując utf-8


@airflame: Ja to robię ręcznie w Sublime Text bawiąc się opcjami FILE >> Reopen with encoding / Save with encoding i naprzemiennie z firefoxem i VIEW >> Repair text encoding eksperymentując z różnymi kodowaniami. Manipuluję plikiem i zawsze się jakoś udawało od 14 lat ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@LuckyLuke_2776: No właśnie nie chcę zmieniać nic w PS bo potem przy aktualizacji to i tak będzie wipeout :/

Ogólnie w TPL tam gdzie się nie wyświetlają polskie znaki jest
<meta charset="utf-8">

Więc wysyłany zapewne jest latin2 z php bezpośrednio. Zapewne jest tam wzmianka aby używał serwera albo not set. Więc zaciąga default latin2
  • Odpowiedz