Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znaki zapytania zamiast niektórych znaków.
Dariusz Ł
post 24.09.2012, 10:06:23
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.07.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
szalek01
post 24.09.2012, 10:56:44
Post #2





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


1) w jakim kodowaniu masz stronę ?
2) sprawdź w jakim kodowaniu jest to co przychodzi z bazy


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
Dariusz Ł
post 24.09.2012, 12:17:01
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.07.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viking
post 24.09.2012, 14:06:14
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:56