Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znaki zapytania zamiast niektórych znaków.
Forum PHP.pl > Forum > Bazy danych > MySQL
Dariusz Ł
Witam,

Przeniosłem bazę danych wraz z plikami na nazwa.pl (na nim jest kopia bazy) i mimo, że zrobiłem to prawidłowo to zamiast polskich / arabskich / rosyjskich itp znaków wyswietlają się znaki zapytania. Dlaczego twierdzę, że zrobiłem to prawidłowo? Używałem UTF-8, wszystkie metody porównań (ogolna, dla tabel, rekordów) w phpMyAdmin są ustawione identycznie w obydwu bazach. Wszystkie znaki w phpMyAdmin wyglądają identycznie w oryginalnej bazie danych i kopii. Jak pliki PHP na nazwa.pl odczytują zapytania z bazy danych na nazwa.pl, wtedy są znaki zapytania, z kolei jeżeli pliki na serwerze 8p.pl / mojego wirtualnego serwera odczytują zdalnie informację z bazy danych na nazwa.pl, wtedy wszystkie znaki wyswietlają się prawidłowo. Wnioskuję, że jest to jakiś problem z odczytem danych przez php.



Dodam, że korzystam z klasy mysqli.

  1. $db = new mysqli("adresserwera", "uzytkownik", "haslo", "baza") or die("Database connection problem.");


Próbowałem także dopisać:
  1. $db->set_charset("utf8");

Wówczas zamiast znaków zapytania wyswietliły się inne znaki inne niż powinny, gdy w tym samym kodzie dałem latin2, dalej były znaki zapytania.

Proszę o poradę, która pomoże w rozwiązaniu mojego problemu, z góry dziekuje.

Pozdrawiam
szalek01
1) w jakim kodowaniu masz stronę ?
2) sprawdź w jakim kodowaniu jest to co przychodzi z bazy
Dariusz Ł
1) UTF-8
2) Tyle wystarczyło, w sumie ta myśl nakierowała mnie na rozwiązanie problemu.

Okazało się, że nazwa.pl zwracała wyniki w ["charset"]=> string(6) "latin2" ["collation"]=> string(17) "latin2_general_ci", a pozostałe dwa serwery w ["charset"]=> string(6) "latin1" ["collation"]=> string(17) "latin1_swedish_ci". Dopisałem:
  1. $db->set_charset("latin1");

do pliku PHP na serwerze nazwa.pl i wszystko wyświetla się jak trzeba.

Spędziłem nad tym problemem kilka godzin, i nie przyszło mi do głowy, żeby sprawdzić w jakim kodowaniu jest to co przychodzi z bazy, wielkie dzięki.
viking
Tylko tak na prawdę wina leży po twojej stronie. Źle zaimportowałeś dane, zamiast utf-8 w latin1. Zrób jeszcze raz poprawny eksport/import.
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.