Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niezgodność kodowania znaków utf8mb4_unicode_ci
Forum PHP.pl > Forum > PHP
mati251195
Witam,

Mam problem z kodowaniem znaków w bazie danych. Posiadam serwer lokalny zrobiony za pomocą programu XAMPP. Mam tam ustawione kodowanie utf8mb4_unicode_ci zarówno dla całej bazy, jak i każdej z tabel. Podczas przeniesienia bazy na hosting OVH wszystko działa elegancko. Kiedy natomiast przeniosłem na hosting nazwa.pl to na stronie mam krzaczki, mimo, że tak też ustawiłem to samo kodowanie.

Kiedy dodałem coś na stronie na hostingu nazwa.pl i przeniosłem na serwer lokalny to też są krzaczki. Wersja phpmyadmin są różne, ale to nie jest przecież problemem, skoro używam takiego samego kodowania znaków.

Strona to autorski system CMS. Tak wygląda kod związany z bazą danych: http://wklej.org/id/1837224/ - nie ma tutaj niczego specjalnego, tylko proste kody.

Przede wszystkim zależy mi na tym, aby uratować jakoś treści i żeby te kodowania były zgodne, abym mógł wygodnie przenosić bazę między serwerem lokalnym, a hostingiem nazwa.pl. Niestety na ich pomoc liczyć nie mogę, bo mają swoje wymówki i umywają ręce. A skoro po przeniesieniu bazy z serwera lokalnego na OVH wszystko działa tzn., że z mojej strony raczej wszystko jest w porządku.

Z góry dziękuję za pomoc smile.gif
viking
Gdzie masz SET NAMES?
mati251195
Jak dodam przy połączeniu taki kod: $this->pdo->exec("SET NAMES 'utf8';"); to i tak nie działa.
Tomplus
Ma się rozumieć że w bazie jak i podczas wyświetlania na localhost oraz i OVH masz wszystko ąę?

Ja korzystam regularnie z serwerów nazwa.pl i owszem też miałem problemy, pomogło:

$this->pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");

oraz dopisanie ;charset=utf8 do zapytania.
mati251195
Nadal nic. Na OVH i serwerze lokalnym działa wszystko elegancko.
Tomplus
A jak tworzysz nowy rekord masz ąę na stronie WWW i w bazie?
mati251195
Tylko na stronie, w bazie są krzaczki zamiast polskich znaków.
viking
Przeczytaj http://wwwgo.pl/article/3/kodowanie_znakow_na_stronach_www
set names, header, poprawnie zakodowane pliki strony i nie ma opcji żeby nie działało.
Tomplus
I teraz wszystko jasne.

Musisz zakodować w bazie prawidłowo. Najlepiej aby to zrobić, to:
- aktualnym połączeniem wyświetl treść
- nowym zapytaniem z dodanym kodowaniem SET NAMES/charset (zależnie od serwera) zrób UPDATE danych.

Oczywiście zrób kopię bazy, albo dodaj nową kolumnę.

Jeżeli w bazie będziesz miał ąę, to przy przenoszeniu z serwera na serwer nei będziesz miał takich kłopotów. Wiem, bo sam borykałem się z takimi problemami. Można poczytać nawet tutaj na forum o nich,
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.