![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Tworzę bazę danych klientów. Wszystko wygląda tak: baza danych MySQL, z której są pobierane dane do tabeli znajdującej się na stronie WWW. Chcę teraz ustawić jedno kodowanie, tak aby nie mieć krzaczków w bazie danych po jej eksporcie z phpMyAdmina. Kierowałem się tymi poradnikami: http://www.php.pl/Wortal/Artykuly/Pomysly-...e-znaki-a-MySQL http://www.smf.pl/index.php?topic=9539.0 1.Ustawiłem kodowanie bazy danych oraz tabel (metoda porównywania napisów) na: utf8_unicode_ci 2.Ustawiłem domyślne kodowanie w confingu serwera MySQL (my.cnf) na:
3. Ustawiłem kodowanie w meta strony WWW:
4. Dodałem ustawienia regionalne do swojego skryptu PHP:
5. Ustawiłem w jakim kodowaniu PHP ma się porozumiewać z MySQL:
W tym momencie nie mam polskich znaków ani na stronie WWW, ani w bazie danych po eksporcie. Jeśli nie wykonam punktu 5 to mam polskie znaki na stronie WWW, ale w bazie danych dalej są krzaki. Gdzie tkwi problem? Chcę teraz ustawić prawidłowo kodowania zanim dodam kilka tysięcy rekordów... Ten post edytował kaziu02 5.01.2016, 19:38:21 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
A czym jest DBController?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
DBController to skrypt do łączenia się z bazą danych. Korzystałem z gotowca, żeby móc edytować komórki w tabeli bezpośrednio przez www.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zatem jeśli zapytania wykonujesz przez tą klasę jakim cudem ma działać set names dla innego połączenia? Ustaw w konstruktorze tej klasy.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Zatem jeśli zapytania wykonujesz przez tą klasę jakim cudem ma działać set names dla innego połączenia? Ustaw w konstruktorze tej klasy. Przerobiłem index.php:
Krzaki są zarówno na stronie WWW i w bazie danych MySQL. Czy to jest w ogóle możliwe, żeby patrząc w baze MySQL przez phpMyAdmin widzieć polskie znaki? Lub przy eksporcie tej bazy? Ten post edytował kaziu02 6.01.2016, 00:30:58 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
A jak ustawisz w phpmyadmin kodowanie latin1 co widzisz?
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyeksportuj jeden rekord z krzakami, otwórz go w normalnym edytorze typu sublime text i powiedź przy jakim kodowaniu będzie dobrze (reopen with encoding). Jeśli ustawiłeś header utf-8 a w bazie będzie iso-8859-2 to wiadomo też że wyświetli krzaki.
Ten post edytował viking 6.01.2016, 10:34:55 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Wyeksportuj jeden rekord z krzakami, otwórz go w normalnym edytorze typu sublime text i powiedź przy jakim kodowaniu będzie dobrze (reopen with encoding). Jeśli ustawiłeś header utf-8 a w bazie będzie iso-8859-2 to wiadomo też że wyświetli krzaki. Otwierałem w Notepad++, próbowałem różnych kodowań i nic :/. Wrzucam zrzut tej bazy danych.
Może uda Ci się znaleźć błąd. Ja pół nocy próbowałem z różnymi kodowaniami i nic. A z tego co widzę to np. instalując forum phpBB, mam ładnie polskie znaki w bazie danych i na stronie WWW out of the box (na tym samym serwerze MySQL i WWW). Ten post edytował kaziu02 6.01.2016, 10:44:55 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niezły masz bajzel. Przecież tu są uzyte różne zupełnie kodowania nawet dla tych samych stringów. Przykładowo GrudzieĹ„ to utf-8 wyświetlany jako win-1250.
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Niezły masz bajzel. Przecież tu są uzyte różne zupełnie kodowania nawet dla tych samych stringów. Przykładowo GrudzieĹ„ to utf-8 wyświetlany jako win-1250. To, że coś jest nie tak to wiem. Pytanie gdzie jest błąd i jak go naprawić. To są przykładowe dane w tabeli, chce naprawić kodowania zanim zacznę wprowadzać prawdziwe dane. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zrobiłeś faktycznie tak jak napisałeś to nowo wprowadzane dane powinny być zapisane jako utf-8.
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zrobiłeś faktycznie tak jak napisałeś to nowo wprowadzane dane powinny być zapisane jako utf-8. Cały pierwszy rekord wprowadziłem od nowa. Oto zrzut bazy z phpMyAdmin do pliku .sql:
Index.php: http://wklej.org/id/1897119/ Ten post edytował kaziu02 6.01.2016, 12:07:51 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pewnie w dodaj.php nic nie ustawiasz. W tym pseudo sterowniku (dlaczego nie używasz PDO) dodaj:
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Pewnie w dodaj.php nic nie ustawiasz. W tym pseudo sterowniku (dlaczego nie używasz PDO) dodaj:
Pomogło. Dziękuję za cierpliwość i pomoc ![]() Mam polskie znaki w bazie danych i na stronie WWW. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:37 |